Laravel – フォームリクエスト

概要

  • FormRequestクラスは、ユーザー権限の認証と入力のバリデーションを専用に扱う
  • 実装は、artisanでFormRequestクラスを継承したクラスを生成し、認証やバリデーションの内容を記述
  • コントローラーのインジェクションをRequestからFormRequestの継承クラスに変更することで、チェック機能をコントローラーから分離することができる

準備

バリデーションで使ったアプリケーションを利用する。

ビュー

コントローラーのアクション

フォームリクエストクラスの生成

以下のコマンドでFormRequestを継承したクラスを作成する。

php artisan make:request リクエストクラス名

リクエストクラスは、app/Http/Requestsディレクトリー下に作成される。

リクエストクラスの内容。ユーザー認証のためのauthorize()メソッドと、バリデーションのためのrules()メソッドが定義されている。

アクションの引数の変更

  • コントローラーの先頭でリクエストクラスをuseでインポート
  • コントローラーのアクションのメソッドインジェクションをRequestからリクエストクラスに変更
  • validate()メソッドはアクションには書かない

今回の例の場合。

ユーザー認証の記述

準備中。認証された場合はauthorize()メソッドの戻り値がtrue

バリデーションルールの記述

rules()メソッドの戻り値の配列に、バリデーションルールを書く。

準備したコントローラーのバリデーション部分をリクエストクラスに記述。

エラーメッセージのカスタマイズ

フォームリクエストのmessages()メソッドをオーバーライドすることで、メッセージのカスタマイズができる。

参考:Laravel 6.x バリデーション~エラーメッセージのカスタマイズ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です