From 0c0dd30377f6b026ad36ad3372968e960c828abe Mon Sep 17 00:00:00 2001 From: John Date: Thu, 30 Aug 2018 21:47:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9Bgvalid=E5=AF=B9struct?= =?UTF-8?q?=E7=9A=84string=E5=B1=9E=E6=80=A7=E7=9A=84=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC=E9=9D=9E=E5=BF=85=E9=9C=80=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/util/gvalid/gvalid.go | 4 ++-- .../{gvalid_struct.go => gvalid_struct1.go} | 0 geg/util/gvalid/gvalid_struct2.go | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) rename geg/util/gvalid/{gvalid_struct.go => gvalid_struct1.go} (100%) create mode 100644 geg/util/gvalid/gvalid_struct2.go 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)) +}