beego 自定义表单验证规则
最近在学习使用beego框架,关于自定义表单验证规则如何像Range方法允许传输不同值类型的参数
首先定义了并在框架加载时候注册自定义的Message及方法
func init() {
extensionValidators()
setCustomMessage()
}
var InSliceValidator validation.CustomFunc = func(v *validation.Validation, obj interface{}, key string) {
//TODO,自定义规则的主体内容
}
func extensionValidators() {
validation.AddCustomFunc("In", InSliceValidator)
}
func setCustomMessage() {
if len(messageTmpl) > 0 {
for k, v := range messageTmpl {
validation.MessageTmpls[k] = v
}
}
}
然后再控制器中定义structTags 规则
type RoleValidator struct {
Name string `json:"name" valid:"Required" label:"名称"`
IsActive int `json:"is_active" valid:"Required"`
}
现在的问题好想无法给In传参数使用 In(1,2)就无效了,
追踪了下CustomFunc
方法没有多余的参数了,请问是否支持改类型的自定义支持如下写法?
翻了源码没看到相关可用(可疑)的方法,
type RoleValidator struct {
Name string `json:"name" valid:"Required" label:"名称"`
IsActive int `json:"is_active" valid:"Required;In(2,34,55)"`
}
请吧里的高手指教一下