LoginSignup
2
0

More than 3 years have passed since last update.

Laravelのフォームリクエストで認可(authorize)が不可だった場合のエラーメッセージの変更方法

Posted at

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.');
    }

より適切なエラーメッセージの変更方法があれば、コメントいただければ幸いです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0