Searching...

校验方法

方法列表:

func Check(value interface{}, rules string, msgs interface{}, params ...map[string]interface{}) *Error
func CheckMap(params map[string]interface{}, rules interface{}, msgs ...CustomMsg) *Error
func CheckStruct(object interface{}, rules interface{}, msgs ...CustomMsg) *Error

简要说明: 1. Check方法用于单条数据校验,比较简单,方法详细介绍请看后续章节; 1. CheckMap方法用于多条数据校验,校验的主体变量为map类型,方法详细介绍请看后续章节; 1. CheckStruct方法用于多条数据校验,校验的主体变量为结构体对象类型,方法详细介绍请看后续章节; 1. Check*方法只有在返回nil的情况下,表示数据校验成功,否则返回校验出错的错误信息对象指针*Error

Error校验结果

校验结果对象Error包含多个字段及其规则及对应错误信息的层级map,底层的错误信息存放数据结构及方法如下:

// 校验错误信息: map[键名]map[规则名]错误信息
type ErrorMap map[string]map[string]string

// 校验错误对象
type Error
    func (e *Error) FirstItem() (key string, msgs map[string]string)
    func (e *Error) FirstRule() (rule string, err string)
    func (e *Error) FirstString() (err string)
    func (e *Error) Map() map[string]string
    func (e *Error) Maps() ErrorMap
    func (e *Error) String() string
    func (e *Error) Strings() (errs []string)

可以结合后续的示例理解这个数据结构。我们可以通过Maps()方法获得该原始错误信息数据结构map。但在大多数时候我们可以通过Error对象的其他方法来方便地获取特定的错误信息。

方法说明

获取校验结果的值可以通过多个校验结果方法获取,为让各位gfer有个充分的理解,以下详细说明以下: 1. FirstItem 在有多个键名/属性校验错误的时候,用以获取出错的第一个键名,以及其对应的出错规则和错误信息;其顺序性只有使用顺序校验规则时有效,否则返回的结果是随机的; 1. FirstRule 会返回FirstItem中得第一条出错的规则及错误信息; 1. FirstString 会返回FirstRule中得第一条规则错误信息; 1. Map 会返回FirstItem中得出错自规则及对应错误信息map; 1. Maps 会返回所有的出错键名及对应的出错规则及对应的错误信息(map[string]map[string]string); 1. String 会返回所有的错误信息,构成一条字符串返回,多个规则错误信息之间以;符号连接; 1. Strings 会返回所有的错误信息,构成[]string类型返回;