阅读(1012)
赞(9)
Laravel 8 使用扩展
2021-06-28 15:05:10 更新
另一种注册自定义校验规则的方式是在 Validator
门面 中使用 extend
方法。接下来,让我们在 服务提供者 中使用这个方法来注册一个自定义校验规则:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\Validator;
class AppServiceProvider extends ServiceProvider
{
/**
* 注册服务提供器
*
* @return void
*/
public function register()
{
//
}
/**
* 驱动应用服务
*
* @return void
*/
public function boot()
{
Validator::extend('foo', function ($attribute, $value, $parameters, $validator) {
return $value == 'foo';
});
}
}
自定义校验闭包函数接收四个参数:要被验证的属性名称 $attribute
,要被验证的属性值 $value
,传入验证规则的参数数组 $parameters
以及 Validator
实例。
您亦可通过传递类和方法到 extend
方法中来代替闭包:
Validator::extend('foo', 'FooValidator@validate');