diff --git a/g/util/gvalid/gvalid.go b/g/util/gvalid/gvalid.go index fdc14a998..8c40c8f2c 100644 --- a/g/util/gvalid/gvalid.go +++ b/g/util/gvalid/gvalid.go @@ -395,8 +395,8 @@ func CheckMap(params map[string]interface{}, rules map[string]string, msgs...map } msg, _ := customMsgs[key] if m := Check(value, rule, msg, params); m != nil { - // 如果值为nil,并且不需要require*验证时,其他验证失效 - if value == nil { + // 如果值为nil|"",并且不需要require*验证时,其他验证失效 + if value == nil || gconv.String(value) == "" { required := false; for k, _ := range m { if strings.Index(k, "required") != -1 { diff --git a/geg/util/gvalid/gvalid_struct.go b/geg/util/gvalid/gvalid_struct1.go similarity index 100% rename from geg/util/gvalid/gvalid_struct.go rename to geg/util/gvalid/gvalid_struct1.go diff --git a/geg/util/gvalid/gvalid_struct2.go b/geg/util/gvalid/gvalid_struct2.go new file mode 100644 index 000000000..d5bf56db6 --- /dev/null +++ b/geg/util/gvalid/gvalid_struct2.go @@ -0,0 +1,18 @@ +package main + +import ( + "gitee.com/johng/gf/g/util/gutil" + "gitee.com/johng/gf/g/util/gvalid" +) + + +// string默认值校验 +func main() { + type User struct { + Uid string `gvalid:"uid@integer"` + } + + user := &User{} + + gutil.Dump(gvalid.CheckStruct(user, nil)) +}