Laravel 8 使用擴(kuò)展

2021-07-17 16:41 更新

另一種注冊自定義校驗(yàn)規(guī)則的方式是在 Validator 門面 中使用 extend 方法。接下來,讓我們在 服務(wù)提供者 中使用這個(gè)方法來注冊一個(gè)自定義校驗(yàn)規(guī)則:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Validator;

class AppServiceProvider extends ServiceProvider
{
    /**
     * 注冊服務(wù)提供器
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * 驅(qū)動應(yīng)用服務(wù)
     *
     * @return void
     */
    public function boot()
    {
        Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
            return $value == 'foo';
        });
    }
}

自定義校驗(yàn)閉包函數(shù)接收四個(gè)參數(shù):要被驗(yàn)證的屬性名稱 $attribute ,要被驗(yàn)證的屬性值 $value ,傳入驗(yàn)證規(guī)則的參數(shù)數(shù)組 $parameters 以及 Validator 實(shí)例。

您亦可通過傳遞類和方法到 extend 方法中來代替閉包:

Validator::extend('foo', 'FooValidator@validate');


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號