• 吾爱摆渡-资源分享平台
0
ad

Home / 知识教程 / [beego]表单验证中文汉化

[beego]表单验证中文汉化

2021-06-01 13:26:43
评论
495 阅读
beego表单数据验证默认是英文的 需要自己汉化下
func init() {

    SetDefaultMessage() //验证信息的初始化定义
}

var MessageTmpls = map[string]string{
    "Required":     "不能为空",
    "Min":          "最小为 %d",
    "Max":          "最大为 %d",
    "Range":        "范围在 %d 至 %d",
    "MinSize":      "最小长度为 %d",
    "MaxSize":      "最大长度为 %d",
    "Length":       "长度必须是 %d",
    "Alpha":        "必须是有效的字母字符",
    "Numeric":      "必须是有效的数字字符",
    "AlphaNumeric": "必须是有效的字母或数字字符",
    "Match":        "必须匹配格式 %s",
    "NoMatch":      "必须不匹配格式 %s",
    "AlphaDash":    "必须是有效的字母或数字或破折号(-_)字符",
    "Email":        "必须是有效的邮件地址",
    "IP":           "必须是有效的IP地址",
    "Base64":       "必须是有效的base64字符",
    "Mobile":       "必须是有效手机号码",
    "Tel":          "必须是有效电话号码",
    "Phone":        "必须是有效的电话号码或者手机号码",
    "ZipCode":      "必须是有效的邮政编码",
}


//默认设置通用的错误验证和提示项
func SetDefaultMessage() {
    if len(MessageTmpls) == 0 {
        return
    }
    //将默认的提示信息转为自定义
    for k, _ := range MessageTmpls {
        validation.MessageTmpls[k] = MessageTmpls[k]
    }

    //增加默认的自定义验证方法
    _ = validation.AddCustomFunc("Unique", Unique)
}

var Unique validation.CustomFunc = func(v *validation.Validation, obj interface{}, key string) {
    logs.Debug("传入的字段名称:", key)
    logs.Debug("传入的字段内容:", obj)
    logs.Debug("传入的验证:", v)
    logs.Debug("验证当前字段在表中不重复")
}

使用

    var obj models.User
    if err := c.ParseForm(&obj); err != nil {
        c.jsonResult(enums.JRCodeFailed, "解析数据失败:(", err.Error())
    }

    valid := validation.Validation{}
    b, err := valid.Valid(&obj)
    if err != nil {
        c.jsonResult(enums.JRCodeFailed, "数据验证失败:(", err.Error())
    }
    if !b {
        st := reflect.TypeOf(obj)
        filed, _ := st.FieldByName(valid.Errors[0].Field)
                //这里需要在model中自己添加description标签
        var alias = filed.Tag.Get("description")
        msgStr := fmt.Sprintf("%s %s", alias, valid.Errors[0].Message)
        c.jsonResult(enums.JRCodeFailed, msgStr, valid.Errors[0])

    }


description标签

img
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。 如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
标签
author
吾爱摆渡

站长

评论