You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 9 Next »
Check
接口文档:https://godoc.org/github.com/gogf/gf/util/gvalid
func CheckValue(ctx context.Context, value interface{}, rules string, messages interface{}, paramMap ...interface{}) Error
单数据校验比较简单,我们来看几个示例。
rule := "length:6,16" if err := gvalid.Check(context.TODO(), "123456", rule, nil); err != nil { fmt.Println(err.String()) } if err := gvalid.Check(context.TODO(), "12345", rule, nil); err != nil { fmt.Println(err.String()) } // 输出: 字段长度为6到16个字符
rule := "integer|between:6,16" msgs := "请输入一个整数|参数大小不对啊老铁" if err := gvalid.Check(context.TODO(), 5.66, rule, msgs); err != nil { fmt.Println(err.Map()) } // 输出: map[integer:请输入一个整数 between:参数大小不对啊老铁]
可以看到,多个规则以及多个自定义错误提示之间使用英文 | 号进行分割,注意自定义错误提示的顺序和多规则的顺序一一对应。msgs参数除了支持string类型以外,还支持map[string]string类型,请看以下例子:
|
msgs
string
map[string]string
rule := "url|min-length:11" msgs := map[string]string{ "url" : "请输入正确的URL地址", "min-length" : "地址长度至少为:min位", } if err := gvalid.Check(context.TODO(), "https://goframeorg", rule, msgs); err != nil { fmt.Println(err.Map()) } // 输出: map[url:请输入正确的URL地址]
// 参数长度至少为6个数字或者6个字母,但是总长度不能超过16个字符 rule := `regex:\d{6,}|\D{6,}|max-length:16` if err := gvalid.Check(context.TODO(), "123456", rule, nil); err != nil { fmt.Println(err.Map()) } if err := gvalid.Check(context.TODO(), "abcde6", rule, nil); err != nil { fmt.Println(err.Map()) } // 输出: map[regex:字段值不合法]