能否在项目中扩展内置规则?

浏览:252 发布日期:2018/01/31 分类:ThinkPHP5专区
我的应用场景是这样的,在项目中我需要有更多的自定义验证规则,我觉得每个需要验证的地方都类似这样的大段大段代码的复制很不科学:$validate = Validate::make([
            'name|名称'  => 'require|chinese',
            'email' => 'email'
        ]);
        $validate->extend([
            'chinese'   => function ($value){
                return preg_match('/[\x7f-\xff]/', $value)? true : ':attribute 必须是中文';
            },
            'isBankSN'  => function($value){
                return preg_match('/^(\d{16}|\d{19})$/', $value)? true : ':attribute 必须是银行卡号';
            },
            'is_uuid'   =>function($value){
                return preg_match('/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/', $value)? true : ':attribute UUID格式不正确';
            },
            ]);
而为具体的验证场景或者数据表定义好验证器类,这种方法,如果字段不一致,我需要定义很多验证器类,这样也很繁琐,能不能在项目中扩展内置规则,在需要的地方简单的调用?
最佳答案
评论( 相关
后面还有条评论,点击查看>>