songyz_validator上線,擴充套件validator這麼香麼,可以早下班和女盆友一起擼貓咯之驗證規則(二)

php-laobing發表於2020-07-21

接上一篇: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 這是新定義的驗證規則。

只有輸入符合驗證規則的資料才能通過:

當前擴充套件適用於 驗證規則 僅當前專案使用,可採用此種方法。

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 協議》,轉載必須註明作者和本文連結

相關文章