概要
- バリデーションチェック後に実行されるメソッドをまとめる。
withValidator()
メソッド
-
このメソッドそのものはバリデーションチェックと同時に実行されるイメージである。
-
わざわざ独自ルールを定義するほどでもない独自ルールでチェックしたいときなどに使う。
-
idが1のときにエラーにキーidで「The id must not be 1.」を返したい場合下記のように記載する。
FormRequest.phppublic function withValidator($validator): void { $validator->after(function ($validator) { if ($this->input('id') === 1) { $validator->errors()->add('id', 'The id must not be 1.'); } }); }
passedValidation()
メソッド
-
バリデーションチェックが正常に完了した場合に実行される。
-
バリデーションチェックが正常に完了した場合、リクエストにnameキーで「FooVar」という値を付与したい場合下記のように記載する。
FormRequest.phppublic function passedValidation(): void { $this->merge([ 'name' => 'FooVar', ]); }
failedValidation()
メソッド
-
バリデーションチェックがエラーで失敗した場合に実行される。
-
API系のバリデーションチェックに失敗した場合、JSONでエラーレスポンスを返したい場合などに使う。
FormRequest.phpprotected function failedValidation(Validator $validator): HttpResponseException { throw new HttpResponseException( response()->badRequest( $validator->errors()->toArray(), ) ); }