mirror of
https://github.com/astaxie/beego.git
synced 2025-06-11 06:10:39 +00:00
验证调整,增加label, xx不能为空
This commit is contained in:
@ -26,6 +26,8 @@ const (
|
||||
// ValidTag struct tag
|
||||
ValidTag = "valid"
|
||||
|
||||
LabelTag = "label"
|
||||
|
||||
wordsize = 32 << (^uint(0) >> 32 & 1)
|
||||
)
|
||||
|
||||
@ -124,6 +126,7 @@ func isStructPtr(t reflect.Type) bool {
|
||||
|
||||
func getValidFuncs(f reflect.StructField) (vfs []ValidFunc, err error) {
|
||||
tag := f.Tag.Get(ValidTag)
|
||||
label := f.Tag.Get(LabelTag)
|
||||
if len(tag) == 0 {
|
||||
return
|
||||
}
|
||||
@ -136,7 +139,7 @@ func getValidFuncs(f reflect.StructField) (vfs []ValidFunc, err error) {
|
||||
if len(vfunc) == 0 {
|
||||
continue
|
||||
}
|
||||
vf, err = parseFunc(vfunc, f.Name)
|
||||
vf, err = parseFunc(vfunc, f.Name, label)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@ -168,7 +171,7 @@ func getRegFuncs(tag, key string) (vfs []ValidFunc, str string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func parseFunc(vfunc, key string) (v ValidFunc, err error) {
|
||||
func parseFunc(vfunc, key string, label string) (v ValidFunc, err error) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
err = fmt.Errorf("%v", r)
|
||||
@ -188,7 +191,7 @@ func parseFunc(vfunc, key string) (v ValidFunc, err error) {
|
||||
err = fmt.Errorf("%s require %d parameters", vfunc, num)
|
||||
return
|
||||
}
|
||||
v = ValidFunc{vfunc, []interface{}{key + "." + vfunc}}
|
||||
v = ValidFunc{vfunc, []interface{}{key + "." + vfunc + "." + label}}
|
||||
return
|
||||
}
|
||||
|
||||
@ -210,7 +213,7 @@ func parseFunc(vfunc, key string) (v ValidFunc, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
tParams, err := trim(name, key+"."+name, params)
|
||||
tParams, err := trim(name, key+"."+ name + "." + label, params)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
@ -267,15 +267,16 @@ func (v *Validation) apply(chk Validator, obj interface{}) *Result {
|
||||
key := chk.GetKey()
|
||||
Name := key
|
||||
Field := ""
|
||||
|
||||
Label := ""
|
||||
parts := strings.Split(key, ".")
|
||||
if len(parts) == 2 {
|
||||
if len(parts) == 3 {
|
||||
Field = parts[0]
|
||||
Name = parts[1]
|
||||
Label = parts[2]
|
||||
}
|
||||
|
||||
err := &Error{
|
||||
Message: chk.DefaultMessage(),
|
||||
Message: Label + chk.DefaultMessage(),
|
||||
Key: key,
|
||||
Name: Name,
|
||||
Field: Field,
|
||||
@ -298,7 +299,7 @@ func (v *Validation) AddError(key, message string) {
|
||||
Field := ""
|
||||
|
||||
parts := strings.Split(key, ".")
|
||||
if len(parts) == 2 {
|
||||
if len(parts) == 3 {
|
||||
Field = parts[0]
|
||||
Name = parts[1]
|
||||
}
|
||||
|
Reference in New Issue
Block a user