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 协议》,转载必须注明作者和本文链接
道阻且长,行则将至
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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