songyz_validator上线,扩展validator这么香么,可以早下班和女盆友一起撸猫咯之验证规则(二)

接上一篇:laravel validator上线,扩展validator这么香么,可以早下班撸猫咯

配置文件扩展

当前扩展适用于 验证规则 仅当前项目使用,可采用此种方法。

系统默认配置

return [
    'failure_throw_exception' => \Bhc\Validator\Exceptions\ValidatorFailureException::class,//验证失败抛出异常类
    'failure_throw_code' => 422,//验证失败抛出异常错误码
    'request_path' => base_path('app' . DIRECTORY_SEPARATOR . 'Http' . DIRECTORY_SEPARATOR . 'Requests'),
    'append_extend_rules' => [
        //添加验证规则  正则表达式
        'chinese_name' => '/^([\x{4e00}-\x{9fa5}])+$/u', //正则匹配
    ],
];

配置扩展 - 增加验证规则

append_extend_rules 数组中添加规则,例如:

return [
    'failure_throw_exception' => \Bhc\Validator\Exceptions\ValidatorFailureException::class,//验证失败抛出异常类
    'failure_throw_code' => 422,//验证失败抛出异常错误码
    'request_path' => base_path('app' . DIRECTORY_SEPARATOR . 'Http' . DIRECTORY_SEPARATOR . 'Requests'),
    'append_extend_rules' => [
        //添加验证规则  正则表达式
        'chinese_name' => '/^([\x{4e00}-\x{9fa5}])+$/u', //正则匹配
        'custom_va' => '/^A[\d]{5}$/',
    ],
];

验证规则如下


public function index()
    {
        $rules = <<<'TOT'
         @param $globalId <required|integer> globalId不能为空|globalId必须是数字
         @param $birthday <required> 请输入您的出生日期
         @param $sex <required|in:1,2> 请选择您的性别|性别参数传递错误
         @param $age <required|integer|min:1> 请输入您的年龄|年龄必须是数字|年龄不能小于1
         @param $custom <required|custom_va> 自定义数据custom不能为空|数据格式不正确,格式要求是:A12345
TOT;

        return $this->parseRules($rules);
    }

custom_va 这是新定义的验证规则。

只有输入符合验证规则的数据才能通过:

2、系统validator扩展

当前扩展适用于 验证规则 仅当前项目使用,可采用此种方法。

Laravel

1、打开 app/Providers/AppServiceProvider.php


public function boot()
{
   Illuminate\Support\Facades\Validator::extend('cc', function ($attribute, $value, $parameters) {
        return $value == 'cc';
   });

}

Lumen

1、打开bootstrap/app.php

找到以下代码:


//打开以下三行的注释

$app->register(App\Providers\AppServiceProvider::class);

$app->withFacades();

$app->withEloquent();

2、打开 app/Providers/AppServiceProvider.php


public function boot()
{
   Illuminate\Support\Facades\Validator::extend('cc', function ($attribute, $value, $parameters) {
        return $value == 'cc';
   });

}
本作品采用《CC 协议》,转载必须注明作者和本文链接
道阻且长,行则将至
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!