分场景验证
分场景
验证器默认校验 rule
中指定的所有参数,如果某个控制器中的多个方法中都用到了 GetParams(ctx, true)
很有可能会出现校验越界的情况,所以我们需要区分场景验证
案例
例如控制器有两个方法,A
和 B
, A
只需要验证 name
, B
只需要验证 age
, 如果不分场景,每一次校验都会同时校验 name
和 age
, 这显然是不符合预期的。如果想实现 A
方法只校验 name
, B
方法只校验 age
, 那么可以这样写
export default {
// 验证规则
rule: {
name: 'require',
age: 'number'
},
// 自定义验证消息提示
message: {
name: '名称不能为空',
age: '年龄必须为正整数'
},
// 按场景划分校验参数
scene: {
A: ['name'],
B: ['age']
}
}
export default {
// 验证规则
rule: {
name: 'require',
age: 'number'
},
// 自定义验证消息提示
message: {
name: '名称不能为空',
age: '年龄必须为正整数'
},
// 按场景划分校验参数
scene: {
A: ['name'],
B: ['age']
}
}