分场景验证
分场景
验证器默认校验 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']
}
}