Edited at

laravel5.5 フォームリクエストのバリデーションエラーをjsonで返す方法

More than 1 year has passed since last update.

日本語のlaravel5.5 のドキュメントを参考にweb APIの実装をしているが、

バリデーションを行う時に、フォームリクエストを使用した場合、

バリデーションエラーをjsonで返す方法は書いていないため困った

http://www.coding4developers.com/tag/how-to-make-a-custom-formrequest-error-response-in-laravel-5-5/

上記URLによると

laravel5.5からカスタムバリデーションのバリデーションエラーからjsonを返す方法が変わったらしい

解決方法

フォームリクエストを作成しているクラスで

以下を記載すればjsonでバリデーションエラーを返してくれた。

例ファイル)/app/Http/Requests/UserFormRequest.php

use Illuminate\Contracts\Validation\Validator;

use Illuminate\Http\Exceptions\HttpResponseException;

protected function failedValidation(Validator $validator) 

        {
throw new HttpResponseException(response()->json($validator->errors(), 422));
}


参考サイト

Tag: How to make a custom FormRequest error response in Laravel 5.5

http://www.coding4developers.com/tag/how-to-make-a-custom-formrequest-error-response-in-laravel-5-5/