1 Star 0 Fork 1

可乐烛光烟/go-utils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
validator.go 1.27 KB
一键复制 编辑 原始数据 按行查看 历史
可乐烛光烟 提交于 2022-11-09 00:21 . Initial commit
/**
* @User: rysa
* @Created:2021/2/7 10:04 下午
* @File: validator
* @Desc:
*/
package go_utils
import (
"errors"
"fmt"
"github.com/go-playground/locales/zh"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
zhtranslations "github.com/go-playground/validator/v10/translations/zh"
"reflect"
)
// 表单验证
// https://github.com/go-playground/validator
var (
uni *ut.UniversalTranslator
Validate *validator.Validate
ValidateTrans ut.Translator
)
func init() {
zh2 := zh.New()
uni = ut.New(zh2, zh2)
ValidateTrans, _ = uni.GetTranslator("zh")
Validate = validator.New()
// 收集结构体中的comment标签,用于替换英文字段名称,这样返回错误就能展示中文字段名称了
Validate.RegisterTagNameFunc(func(fld reflect.StructField) string {
return fld.Tag.Get("comment")
})
if err := zhtranslations.RegisterDefaultTranslations(Validate, ValidateTrans); err != nil {
fmt.Println(fmt.Sprintf("RegisterDefaultTranslations %v", err))
}
}
func ValidateStruct(s interface{}) error {
err := Validate.Struct(s)
if err != nil {
errs := err.(validator.ValidationErrors)
for _, e := range errs.Translate(ValidateTrans) {
if len(e) > 0 {
return errors.New(e)
}
}
}
return nil
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/rysa/go-utils.git
git@gitee.com:rysa/go-utils.git
rysa
go-utils
go-utils
v1.0.14

搜索帮助