Skip to content

分场景验证


分场景

验证器默认校验 rule 中指定的所有参数,如果某个控制器中的多个方法中都用到了 GetParams(ctx, true) 很有可能会出现校验越界的情况,所以我们需要区分场景验证

案例

例如控制器有两个方法,ABA 只需要验证 name , B 只需要验证 age , 如果不分场景,每一次校验都会同时校验 nameage , 这显然是不符合预期的。如果想实现 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']
    }
}

备案号:冀ICP备20015584号-2