こんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴9年)で、資格は13個保有しています。
いきなり結論ですが、LaravelでFormRequestを使う場合、authorizeメソッドは使わないなら削除してもOKです。
テンプレでコードが残っている場合が多いですが、Laravel5.7以降は削除しても問題ありません。
本記事を読めば、LaravelにおけるFormRequestのauthorizeメソッドについて分かるので早速見ていきましょう!
すぐ読み終わるので、ぜひ最後まで読んでくださいね♪
FormRequestのauthorizeメソッドとは?
FormRequestのauthorizeメソッドはリクエストに対する権限チェックを行います。
use Illuminate\Foundation\Http\FormRequest;
class HogeRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
//
];
}
}
権限がある場合はtrueを、ない場合はfalseを返す必要があり、特に権限チェックが必要ない場合は「return true;」を返すのがお作法でした。
古いLaravelだとauthorizeメソッドがデフォルトで設定されていたんですよね…
【結論】FormRequestのauthorizeメソッドはいらない
use Illuminate\Foundation\Http\FormRequest;
class HogeRequest extends FormRequest
{
public function rules(): array
{
return [
//
];
}
}
結論、authorizeメソッドで権限チェックをしない(特に処理を行わない)場合は、上記のようにメソッドごと削除してもOKです。
ただし、Laravel5.7以降のバージョンに限るので、古いLaravelを使っている場合はバージョンアップしちゃいましょう。
Laravel5.7は死ぬほど古いので、使っている時点でやばいです(笑)
ちなみに、こちらのPRでauthorizeメソッドは記載しなくてもよくなりました。
まとめ
今回は、LaravelにおけるFormRequestのauthorizeメソッドについて解説しました。
以下が本記事のまとめになります。
- おすすめ本
Laravelの勉強なら「PHPフレームワーク Laravel入門 第2版
最後までお読みいただき、ありがとうございました!
- クソおすすめ本
海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。