完善validator枚举值验证

This commit is contained in:
白茶清欢 2025-01-24 15:05:46 +08:00
parent bd95270130
commit 33c60bcd2d
2 changed files with 282 additions and 54 deletions

View File

@ -197,12 +197,61 @@ func getDataTypeDesc(value DataType, description string) DataTypeDesc {
var ( var (
// DataTypeBaseNumber 基础的int类型 // DataTypeBaseNumber 基础的int类型
DataTypeBaseNumber = []DataType{DataTypeInt, DataTypeUint, DataTypeFloat, DataTypeIntPtr, DataTypeUintPtr, DataTypeFloatPtr} DataTypeBaseNumber = []DataType{DataTypeInt, DataTypeUint, DataTypeFloat, DataTypeIntPtr, DataTypeUintPtr, DataTypeFloatPtr}
DataTypeBaseInt = []DataType{DataTypeInt, DataTypeIntPtr} DataTypeBaseInt = []DataType{DataTypeInt, DataTypeIntPtr}
DataTypeBaseUint = []DataType{DataTypeUint, DataTypeUintPtr} DataTypeBaseUint = []DataType{DataTypeUint, DataTypeUintPtr}
DataTypeBaseFloat = []DataType{DataTypeFloat, DataTypeFloatPtr} DataTypeBaseFloat = []DataType{DataTypeFloat, DataTypeFloatPtr}
DataTypeBaseString = []DataType{DataTypeString, DataTypeStringPtr} DataTypeBaseString = []DataType{DataTypeString, DataTypeStringPtr}
DataTypeBaseBool = []DataType{DataTypeBool, DataTypeBoolPtr} DataTypeBaseBool = []DataType{DataTypeBool, DataTypeBoolPtr}
DataTypeSliceMarshal = []DataType{
DataTypeSliceAnyWithMarshal,
DataTypeSliceIntWithMarshal,
DataTypeSliceUintWithMarshal,
DataTypeSliceFloatWithMarshal,
DataTypeSliceBoolWithMarshal,
DataTypeSliceMapAnyAnyWithMarshal,
DataTypeSliceMapStringAnyWithMarshal,
DataTypeSliceAnyWithMarshal,
DataTypeSliceSliceWithMarshal,
}
DataTypeSliceSplit = []DataType{
DataTypeSliceIntWithChar,
DataTypeSliceUintWithChar,
DataTypeSliceFloatWithChar,
DataTypeSliceBoolWithChar,
DataTypeSliceStringWithChar,
}
DataTypeSlice = []DataType{
DataTypeSliceString,
DataTypeSliceAny,
DataTypeSliceBool,
DataTypeSliceMapStringAny,
DataTypeSliceInt,
DataTypeSliceUint,
DataTypeSliceFloat,
DataTypeSliceMapAnyAny,
DataTypeSliceSlice,
}
DataTypeMap = []DataType{
DataTypeMapStrAny,
DataTypeMapAnyAny,
DataTypeMapStrBool,
DataTypeMapStrInt,
DataTypeMapStrFloat,
DataTypeMapStrUint,
DataTypeMapStrSlice,
DataTypeMapStrStr,
}
DataTypeMapMarshal = []DataType{
DataTypeMapStrAnyWithMarshal,
DataTypeMapAnyAnyWithMarshal,
DataTypeMapStrBoolWithMarshal,
DataTypeMapStrIntWithMarshal,
DataTypeMapStrFloatWithMarshal,
DataTypeMapStrUintWithMarshal,
DataTypeMapStrSliceWithMarshal,
DataTypeMapStrStrWithMarshal,
}
) )
func getMergeDataTypeList(dataTypeList ...[]DataType) []DataType { func getMergeDataTypeList(dataTypeList ...[]DataType) []DataType {

View File

@ -62,22 +62,22 @@ var ValidatorRuleSupportDataTypeTable = map[ValidatorRule]ValidatorRuleConfig{
ValidatorRuleEqcsfield: { ValidatorRuleEqcsfield: {
ValidatorRule: ValidatorRuleEqcsfield, ValidatorRule: ValidatorRuleEqcsfield,
Description: "跨结构体字段相等", Description: "跨结构体字段相等",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidatorRuleEqfield: { ValidatorRuleEqfield: {
ValidatorRule: ValidatorRuleEqfield, ValidatorRule: ValidatorRuleEqfield,
Description: "同结构体字段相等", Description: "同结构体字段相等",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidatorRuleFieldcontains: { ValidatorRuleFieldcontains: {
ValidatorRule: ValidatorRuleFieldcontains, ValidatorRule: ValidatorRuleFieldcontains,
Description: "检查指定的字段值是否存在于字段中", Description: "检查指定的字段值是否存在于字段中",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidatorRuleFieldexcludes: { ValidatorRuleFieldexcludes: {
ValidatorRule: ValidatorRuleFieldexcludes, ValidatorRule: ValidatorRuleFieldexcludes,
Description: "检查指定的字段值是否不存在于字段中", Description: "检查指定的字段值是否不存在于字段中",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidatorRuleGtcsfield: { ValidatorRuleGtcsfield: {
ValidatorRule: ValidatorRuleGtcsfield, ValidatorRule: ValidatorRuleGtcsfield,
@ -122,22 +122,22 @@ var ValidatorRuleSupportDataTypeTable = map[ValidatorRule]ValidatorRuleConfig{
ValidatorRuleNecsfield: { ValidatorRuleNecsfield: {
ValidatorRule: ValidatorRuleNecsfield, ValidatorRule: ValidatorRuleNecsfield,
Description: "不等于(跨结构体)", Description: "不等于(跨结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidatorRuleNefield: { ValidatorRuleNefield: {
ValidatorRule: ValidatorRuleNefield, ValidatorRule: ValidatorRuleNefield,
Description: "不等于(同结构体)", Description: "不等于(同结构体)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidateRuleEq: { ValidateRuleEq: {
ValidatorRule: ValidateRuleEq, ValidatorRule: ValidateRuleEq,
Description: "等于(严格校验)", Description: "等于(严格校验)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidateRuleEqIgnoreCase: { ValidateRuleEqIgnoreCase: {
ValidatorRule: ValidateRuleEqIgnoreCase, ValidatorRule: ValidateRuleEqIgnoreCase,
Description: "等于(忽略大小写)", Description: "等于(忽略大小写)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidateRuleGt: { ValidateRuleGt: {
ValidatorRule: ValidateRuleGt, ValidatorRule: ValidateRuleGt,
@ -162,41 +162,216 @@ var ValidatorRuleSupportDataTypeTable = map[ValidatorRule]ValidatorRuleConfig{
ValidateRuleNe: { ValidateRuleNe: {
ValidatorRule: ValidateRuleNe, ValidatorRule: ValidateRuleNe,
Description: "不等于(严格判断)", Description: "不等于(严格判断)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
}, },
ValidateRuleNeIgnoreCase: { ValidateRuleNeIgnoreCase: {
ValidatorRule: ValidateRuleNeIgnoreCase, ValidatorRule: ValidateRuleNeIgnoreCase,
Description: "不等于(忽略大小写)", Description: "不等于(忽略大小写)",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
},
ValidatorRuleCommonDir: {
ValidatorRule: ValidatorRuleCommonDir,
Description: "文件夹存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
},
ValidatorRuleCommonDirPath: {
ValidatorRule: ValidatorRuleCommonDirPath,
Description: "文件夹路径存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
},
ValidatorRuleCommonFile: {
ValidatorRule: ValidatorRuleCommonFile,
Description: "文件存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
},
ValidatorRuleCommonFilepath: {
ValidatorRule: ValidatorRuleCommonFilepath,
Description: "文件路径存在",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
},
ValidatorRuleCommonImage: {
ValidatorRule: ValidatorRuleCommonImage,
Description: "是否图像资源",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal),
},
ValidatorRuleCommonIsDefault: {
ValidatorRule: ValidatorRuleCommonIsDefault,
Description: "是否对应类型默认值",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonLen: {
ValidatorRule: ValidatorRuleCommonLen,
Description: "数据长度",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString, DataTypeSliceMarshal, DataTypeSliceSplit, DataTypeMapMarshal, DataTypeSlice, DataTypeMap), // 所有类型均支持
},
ValidatorRuleCommonMax: {
ValidatorRule: ValidatorRuleCommonMax,
Description: "最大值",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
},
ValidatorRuleCommonMin: {
ValidatorRule: ValidatorRuleCommonMin,
Description: "最小值",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
},
ValidatorRuleCommonOneOf: {
ValidatorRule: ValidatorRuleCommonOneOf,
Description: "枚举值",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool), SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber, DataTypeBaseString, DataTypeBaseBool),
}, },
ValidatorRuleCommonRequired: {
ValidatorRule: ValidatorRuleCommonRequired,
Description: "必传校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonRequiredIf: {
ValidatorRule: ValidatorRuleCommonRequiredIf,
Description: "当指定字段等于给定值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonRequiredUnless: {
ValidatorRule: ValidatorRuleCommonRequiredUnless,
Description: "当指定字段不等于给定值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonRequiredWith: {
ValidatorRule: ValidatorRuleCommonRequiredWith,
Description: "当任意一个指定字段不为零值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonRequiredWithAll: {
ValidatorRule: ValidatorRuleCommonRequiredWithAll,
Description: "当全部指定字段不为零值时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonRequiredWithout: {
ValidatorRule: ValidatorRuleCommonRequiredWithout,
Description: "当任意一个字段为空时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonRequiredWithoutAll: {
ValidatorRule: ValidatorRuleCommonRequiredWithoutAll,
Description: "当全部字段为空时, 必传校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonExcludedIf: {
ValidatorRule: ValidatorRuleCommonExcludedIf,
Description: "当指定字段等于给定值时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonExcludedUnless: {
ValidatorRule: ValidatorRuleCommonExcludedUnless,
Description: "当指定字段等于给定值时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonExcludedWith: {
ValidatorRule: ValidatorRuleCommonExcludedWith,
Description: "当全部指定字段不为零值时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonExcludedWithAll: {
ValidatorRule: ValidatorRuleCommonExcludedWithAll,
Description: "当全部指定字段不为零值时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonExcludedWithout: {
ValidatorRule: ValidatorRuleCommonExcludedWithout,
Description: "当任意一个指定字段不存在时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonExcludedWithoutAll: {
ValidatorRule: ValidatorRuleCommonExcludedWithoutAll,
Description: "当全部指定字段不存在时,排除校验",
SupportDataTypeList: nil, // 所有类型均支持
},
ValidatorRuleCommonUnique: {
ValidatorRule: ValidatorRuleCommonUnique,
Description: "是否唯一, 用于切片验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeSlice), // 所有类型均支持
},
ValidatorRuleFormatterCron: {
ValidatorRule: ValidatorRuleFormatterCron,
Description: "cron表达式验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterEmail: {
ValidatorRule: ValidatorRuleFormatterEmail,
Description: "邮箱地址验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterJson: {
ValidatorRule: ValidatorRuleFormatterJson,
Description: "json格式验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterJwt: {
ValidatorRule: ValidatorRuleFormatterJson,
Description: "JWT(JSON Web Token)验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterLatitude: {
ValidatorRule: ValidatorRuleFormatterLatitude,
Description: "纬度验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
},
ValidatorRuleFormatterLongitude: {
ValidatorRule: ValidatorRuleFormatterLongitude,
Description: "经度验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseNumber),
},
ValidatorRuleFormatterTimezone: {
ValidatorRule: ValidatorRuleFormatterLongitude,
Description: "时区验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterUrl: {
ValidatorRule: ValidatorRuleFormatterUrl,
Description: "url验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterUri: {
ValidatorRule: ValidatorRuleFormatterUrl,
Description: "uri验证",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterLowercase: {
ValidatorRule: ValidatorRuleFormatterLowercase,
Description: "仅包含小写字符",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
ValidatorRuleFormatterUppercase: {
ValidatorRule: ValidatorRuleFormatterUppercase,
Description: "仅包含大写字符",
SupportDataTypeList: getMergeDataTypeList(DataTypeBaseString),
},
} }
var ( var (
// ValidatorRuleEqcsfield .....Fields .............. // ValidatorRuleEqcsfield .....Fields ..............
ValidatorRuleEqcsfield ValidatorRule = "eqcsfield" // 跨结构体字段相等 ValidatorRuleEqcsfield ValidatorRule = "eqcsfield" // 跨结构体字段相等 eqcsfield={{struct.field}}
ValidatorRuleEqfield ValidatorRule = "eqfield" // 同结构体字段相等 ValidatorRuleEqfield ValidatorRule = "eqfield" // 同结构体字段相等 eqfield={{struct.field}}
ValidatorRuleFieldcontains ValidatorRule = "fieldcontains" // 检查指定的字段值是否存在于字段中 ValidatorRuleFieldcontains ValidatorRule = "fieldcontains" // 检查指定的字段值是否存在于字段中 fieldcontains={{struct.field}}
ValidatorRuleFieldexcludes ValidatorRule = "fieldexcludes" // 检查指定的字段值是否存在于字段中 ValidatorRuleFieldexcludes ValidatorRule = "fieldexcludes" // 检查指定的字段值是否存在于字段中 fieldexcludes={{struct.field}}
ValidatorRuleGtcsfield ValidatorRule = "gtcsfield" // 大于(跨结构体) ValidatorRuleGtcsfield ValidatorRule = "gtcsfield" // 大于(跨结构体) gtcsfield={{struct.field}}
ValidatorRuleGtecsfield ValidatorRule = "gtecsfield" // 大于等于(跨结构体) ValidatorRuleGtecsfield ValidatorRule = "gtecsfield" // 大于等于(跨结构体) gtecsfield={{struct.field}}
ValidatorRuleGtfield ValidatorRule = "gtfield" // 大于(同结构体) ValidatorRuleGtfield ValidatorRule = "gtfield" // 大于(同结构体) gtfield={{struct.field}}
ValidatorRuleGtefield ValidatorRule = "gtefield" // 大于等于(同结构体) ValidatorRuleGtefield ValidatorRule = "gtefield" // 大于等于(同结构体) gtefield={{struct.field}}
ValidatorRuleLtcsfield ValidatorRule = "ltcsfield" // 小于(跨结构体) ValidatorRuleLtcsfield ValidatorRule = "ltcsfield" // 小于(跨结构体) ltcsfield={{struct.field}}
ValidatorRuleLtecsfield ValidatorRule = "ltecsfield" // 小于等于(跨结构体) ValidatorRuleLtecsfield ValidatorRule = "ltecsfield" // 小于等于(跨结构体) ltecsfield={{struct.field}}
ValidatorRuleLtfield ValidatorRule = "ltfield" // 小于(同结构体) ValidatorRuleLtfield ValidatorRule = "ltfield" // 小于(同结构体) ltfield={{struct.field}}
ValidatorRuleLtefield ValidatorRule = "ltefield" // 小于等于(同结构体) ValidatorRuleLtefield ValidatorRule = "ltefield" // 小于等于(同结构体) ltefield={{struct.field}}
ValidatorRuleNecsfield ValidatorRule = "necsfield" // 不等于(跨结构体) ValidatorRuleNecsfield ValidatorRule = "necsfield" // 不等于(跨结构体) necsfield={{struct.field}}
ValidatorRuleNefield ValidatorRule = "nefield" // 不等于(同结构体) ValidatorRuleNefield ValidatorRule = "nefield" // 不等于(同结构体) nefield={{struct.field}}
// ValidateRuleEq Comparisons .................... // ValidateRuleEq Comparisons ....................
ValidateRuleEq ValidatorRule = "eq" // 相等(严格判断) ValidateRuleEq ValidatorRule = "eq" // 相等(严格判断) eq={{any_value}}
ValidateRuleEqIgnoreCase ValidatorRule = "eq_ignore_case" // 相等(忽略大小写) ValidateRuleEqIgnoreCase ValidatorRule = "eq_ignore_case" // 相等(忽略大小写) eq_ignore_case={{any_value}}
ValidateRuleGt ValidatorRule = "gt" // 大于 ValidateRuleGt ValidatorRule = "gt" // 大于 gt={{number_value}}
ValidateRuleGte ValidatorRule = "gte" // 大于等于 ValidateRuleGte ValidatorRule = "gte" // 大于等于 gte={{number_value}}
ValidateRuleLt ValidatorRule = "lt" // 小于 ValidateRuleLt ValidatorRule = "lt" // 小于 lt={{number_value}}
ValidateRuleLte ValidatorRule = "lte" // 小于等于 ValidateRuleLte ValidatorRule = "lte" // 小于等于 lte={{number_value}}
ValidateRuleNe ValidatorRule = "ne" // 不相等(严格判断) ValidateRuleNe ValidatorRule = "ne" // 不相等(严格判断) ne={{any_value}}
ValidateRuleNeIgnoreCase ValidatorRule = "ne_ignore_case" // 不相等(忽略大小写) ValidateRuleNeIgnoreCase ValidatorRule = "ne_ignore_case" // 不相等(忽略大小写) ne_ignore_case={{any_value}}
// ValidatorRuleCommonDir ............others // ValidatorRuleCommonDir ............others
ValidatorRuleCommonDir ValidatorRule = "dir" // 文件夹存在 ValidatorRuleCommonDir ValidatorRule = "dir" // 文件夹存在
@ -205,24 +380,24 @@ var (
ValidatorRuleCommonFilepath ValidatorRule = "filepath" // 文件路径 ValidatorRuleCommonFilepath ValidatorRule = "filepath" // 文件路径
ValidatorRuleCommonImage ValidatorRule = "image" // 图像 ValidatorRuleCommonImage ValidatorRule = "image" // 图像
ValidatorRuleCommonIsDefault ValidatorRule = "isdefault" // 是否默认值 ValidatorRuleCommonIsDefault ValidatorRule = "isdefault" // 是否默认值
ValidatorRuleCommonLen ValidatorRule = "len" // 长度 ValidatorRuleCommonLen ValidatorRule = "len" // 长度 len={{uint_value}}
ValidatorRuleCommonMax ValidatorRule = "max" // 最大值 ValidatorRuleCommonMax ValidatorRule = "max" // 最大值 max={{int_value}}
ValidatorRuleCommonMin ValidatorRule = "min" // 最小值 ValidatorRuleCommonMin ValidatorRule = "min" // 最小值 min={{int_value}}
ValidatorRuleCommonOneOf ValidatorRule = "oneof" // 枚举值, 多个空格分隔 ValidatorRuleCommonOneOf ValidatorRule = "oneof" // 枚举值, 多个空格分隔 oneof={{enum1}} {{enum2}} {{enum....}}
ValidatorRuleCommonRequired ValidatorRule = "required" // 必传 ValidatorRuleCommonRequired ValidatorRule = "required" // 必传
ValidatorRuleCommonRequiredIf ValidatorRule = "required_if" // ValidatorRuleCommonRequiredIf ValidatorRule = "required_if" // 当指定字段等于给定值时,校验必传 required_if={{check_field}} {{check_field_value}} {{check_field...}} {{check_field_value...}}
ValidatorRuleCommonRequiredUnless ValidatorRule = "required_unless" // ValidatorRuleCommonRequiredUnless ValidatorRule = "required_unless" // 当指定字段不等于给定值时,校验必传 required_if={{check_field}} {{check_field_value}} {{check_field...}} {{check_field_value...}}
ValidatorRuleCommonRequiredWith ValidatorRule = "required_with" // ValidatorRuleCommonRequiredWith ValidatorRule = "required_with" // 当任意一个指定字段不为零值时, 校验必传 required_with={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonRequiredWithAll ValidatorRule = "required_with_all" // ValidatorRuleCommonRequiredWithAll ValidatorRule = "required_with_all" // 当全部指定字段不为零值时, 校验必传 required_with={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonRequiredWithout ValidatorRule = "required_without" // ValidatorRuleCommonRequiredWithout ValidatorRule = "required_without" // 任意一个字段为空时,必传校验 required_without={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonRequiredWithoutAll ValidatorRule = "required_without_all" // ValidatorRuleCommonRequiredWithoutAll ValidatorRule = "required_without_all" // 全部字段为空时,必传校验 required_without_all={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonExcludedIf ValidatorRule = "excluded_if" // ValidatorRuleCommonExcludedIf ValidatorRule = "excluded_if" // 当指定字段等于给定值时,排除校验 excluded_if={{check_field}} {{check_field_value}} {{check_field...}} {{check_field_value...}}
ValidatorRuleCommonExcludedUnless ValidatorRule = "excluded_unless" // ValidatorRuleCommonExcludedUnless ValidatorRule = "excluded_unless" // 当指定字段不等于给定值时,排除校验 excluded_if={{check_field}} {{check_field_value}} {{check_field...}} {{check_field_value...}}
ValidatorRuleCommonExcludedWith ValidatorRule = "excluded_with" // ValidatorRuleCommonExcludedWith ValidatorRule = "excluded_with" // 当任意一个指定字段不为零值时,排除校验 excluded_with={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonExcludedWithAll ValidatorRule = "excluded_with_all" // ValidatorRuleCommonExcludedWithAll ValidatorRule = "excluded_with_all" // 当全部指定字段不为零值时,排除校验 excluded_with_all={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonExcludedWithout ValidatorRule = "excluded_without" // ValidatorRuleCommonExcludedWithout ValidatorRule = "excluded_without" // 当任意一个指定字段不存在时,排除校验 excluded_without={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonExcludedWithoutAll ValidatorRule = "excluded_without_all" // ValidatorRuleCommonExcludedWithoutAll ValidatorRule = "excluded_without_all" // 当q廍指定字段不存在时,排除校验 excluded_without-all={{Field1}} {{Field2}} {{Field...}}
ValidatorRuleCommonUnique ValidatorRule = "unique" // ValidatorRuleCommonUnique ValidatorRule = "unique" // 数据唯一校验
// ValidatorRuleFormatterCron ............. formatter // ValidatorRuleFormatterCron ............. formatter
ValidatorRuleFormatterCron ValidatorRule = "cron" // cron表达式 ValidatorRuleFormatterCron ValidatorRule = "cron" // cron表达式
@ -232,4 +407,8 @@ var (
ValidatorRuleFormatterLatitude ValidatorRule = "latitude" // 纬度 ValidatorRuleFormatterLatitude ValidatorRule = "latitude" // 纬度
ValidatorRuleFormatterLongitude ValidatorRule = "longitude" // 经度 ValidatorRuleFormatterLongitude ValidatorRule = "longitude" // 经度
ValidatorRuleFormatterTimezone ValidatorRule = "timezone" // 时区 ValidatorRuleFormatterTimezone ValidatorRule = "timezone" // 时区
ValidatorRuleFormatterUrl ValidatorRule = "url" // url
ValidatorRuleFormatterUri ValidatorRule = "uri" // uri
ValidatorRuleFormatterLowercase ValidatorRule = "lowercase" // 仅包含小写字符
ValidatorRuleFormatterUppercase ValidatorRule = "uppercase" // 仅包含大写字符
) )