Laravel5.4では以下の様に、フォームリクエストへのAfterフックを追加する方法がドキュメントで紹介されている。
参考:https://laravel.com/docs/5.4/validation#form-request-validation
/**
* Configure the validator instance.
*
* @param \Illuminate\Validation\Validator $validator
* @return void
*/
public function withValidator($validator)
{
$validator->after(function ($validator) {
if ($this->somethingElseIsInvalid()) {
$validator->errors()->add('field', 'Something is wrong with this field!');
}
});
}
Laravel5.1でも同じ機能を使いたかったので以下のように実装した。
public function getValidatorInstance()
{
$validator = parent::getValidatorInstance();
$validator->after(function ($validator) {
if ($this->somethingElseIsInvalid()) {
$validator->errors()->add('field', 'Something is wrong with this field!');
}
});
return $validator;
}