校验方法:https://godoc.org/github.com/gogf/gf/g/util/gvalid

    1. 其中params参数支持任意 map 数据类型;
    2. rules参数支持 []string / map[string]string 数据类型,前面一种类型支持返回校验结果顺序,后一种不支持(因为map是无序的);
    3. rules参数中的 map[string]string 是一个二维的关联数组/哈希表,第一维键名为参数键名,第二维为带有错误的校验规则名称*,键值为错误信息;

    多数据校验 - CheckMap

    该示例同时也展示了自定义错误信息传递的两种数据类型,string或者map[string]string。其中map[string]string类型参数需要指定对应字段、对应规则的错误提示信息,是一个二维的“关联数组”。

    多数据校验 - 校验结果顺序性

    那是因为校验的规则我们传递的是map类型,而golang的map类型并不具有有序性,因此校验的结果和规则一样是随机的,同一个校验结果的同一个校验方法多次获取结果值返回的可能也不一样了。

    校验结果中如果不满足required那么返回对应的错误信息,否则才是后续的校验错误信息;也就是说,返回的错误信息应当和我设定规则时的顺序一致。改进如下:

    rules的这种满足顺序性校验结果返回的规则,我们称之为gvalid tag,在后续的结构体对象校验中,我们也可以遇得到这种gvalid tag,语法是一样的。gvalid tag的书写规则如下:

    其中:

    • 属性别名错误提示非必需字段校验规则必需字段
    • 键名名称 非必需字段,指需要校验的map中得键名名称,需要和params参数中得键名一致;
    • 错误提示 非必需字段,示自定义的错误提示信息,当规则校验时对默认的错误提示信息进行覆盖;该字段也可以通过msg参数传入覆盖;