如果它适合你的情况,你可以简单地将验证移动到父结构:
这是验证逻辑,if (m.CardType == "RECIPROCAL" || m.CardType == "INTERIM") && m.CardExpiry.Day == "" { //validation error}required_if可以基于同一结构中的字段值使用(在本例中为 CardExpiry)Day string `validate:"required_if=Month 01"`我的问题是,可以根据其封闭结构字段之一(在本例中为 Me...
FirstNamestring`validate:"required"`LastNamestring`validate:"required"`Ageuint8`validate:"gte=0,lte=130"`Emailstring`validate:"required,email"`Addresses []*Address`validate:"required,dive,required"`}typeAddressstruct{ Streetstring`validate:"required"`Citystring`validate:"required"`Planetstring`validate...
funcInitTrans(localestring)(errerror) {// 修改gin框架中的Validator引擎属性,实现自定制ifv, ok := binding.Validator.Engine().(*validator.Validate); ok {// ... liwenzhou.com ...// 为SignUpParam注册自定义校验方法v.RegisterStructValidation(SignUpParamStructLevelValidation, SignUpParam{}) zhT :=...
= nil { fmt.Println(errs.Error()) } // 变量验证 m := map[string]string{"": "", "val3": "val3"} errs = validate.Var(m, "required,dive,keys,required,endkeys,required") if errs != nil { fmt.Println(errs.Error()) } }...
typeClassstruct{Cidint64`validate:"required||integer=10000,_"`Cnamestring`validate:"required||string=1,5||unique"`BeginTimestring`validate:"required||datetime=H:i"`}typeStudentstruct{Uidint64`validate:"required||integer=10000,_"`Namestring`validate:"required||string=1,5"`Ageint64`validate:"requi...
Maintainers This project has grown large enough that more than one person is required to properly support the community. If you are interested in becoming a maintainer please reach out to me https://github.com/deankarnAbout💯Go Struct and Field validation, including Cross Field, Cross Struct,...
funcvalidateUser(user User)error{validate:=validator.New()err:=validate.Struct(user)iferr!=nil{for_,errField:=rangeerr.(validator.ValidationErrors){switcherrField.Tag(){case"required":returnfmt.Errorf("%s is required",errField.Field())case"min":returnfmt.Errorf("%s must be at least %s ...
City string `validate:"min=8,max=15"` Name string `validate:"min=6,max=10"` Addr string `validate:"url"` Age int `validate:"gte=18,lte=100"` Tall int `validate:"required"` IpAddr string `validate:"ipv4"` Email string `validate:"email"` ...
"required"`Codestring`validate:"customValidator"`// 使用自定义验证器}// CustomValidator 定义在结构体中的自定义验证器func(f UserForm)CustomValidator(valstring)bool{returnlen(val) ==4}// Messages 您可以自定义验证器错误消息func(f UserForm)Messages()map[string]string{returnvalidate.MS{"required":"oh...