1
我不认为我的验证器扩展正在工作,但我无法理解为什么。Laravel验证扩展不会触发
服务提供商。
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
Validator::extend('fail', function ($attribute, $value, $parameters, $validator) {
return false;
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
}
}
我知道服务提供商的启动,是因为发射,如果我dd();
引导方法中,我得到的输出。如果我将dd();
添加到扩展闭包函数中,我不会得到任何输出。
请求
class SaveOrder extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = [
'customer_id' => 'in:' . Customer::getImplodedCurrentTeamKeys(),
'pin' => 'fail'
];
return $rules;
}
}
我知道这个请求被正确地验证,因为如果我改变规则'pin' => 'required'
和放不给我得到一个失败。
为什么我的自定义验证规则不起作用?
这可能是愚蠢的,是'使用Illuminate \ Support \ Facades \ Validator'命名空间添加到'AppServiceProvider'中吗? –
@Saumini感谢您的回复和您的建议。是'使用Illuminate \ Support \ Facades \ Validator;'出现在AppServiceProvider的顶部 –