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的頂部 –