Laravelのフォームリクエストのauthorize
メソッドがfalseだった場合に返されるエラーメッセージを日本語にしたかったので方法を調べました。
フォームリクエストクラス内でfailedAuthorization
メソッドをオーバーライドして、AuthorizationException
にメッセージを引き渡してやれば、メッセージを任意のテキストできました。
protected function failedAuthorization()
{
throw new \Illuminate\Auth\Access\AuthorizationException('この操作は許可されていません。');
}
ちなみ、FormRequest
クラスでは以下のように定義されており、デフォルトだとここで指定されているメッセージが返されるようです。
vendor/laravel/framework/src/Illuminate/Foundation/Http/FormRequest.php
/**
* Handle a failed authorization attempt.
*
* @return void
*
* @throws \Illuminate\Auth\Access\AuthorizationException
*/
protected function failedAuthorization()
{
throw new AuthorizationException('This action is unauthorized.');
}
より適切なエラーメッセージの変更方法があれば、コメントいただければ幸いです。