FormRequestとは
FormRequestは、Laravelで提供されるクラスで、Requestをフォーム利用のために拡張したもの。
Laravelは、クライアントからのリクエストは、Requestクラスのインスタンスとして送られてくる。
このRequestを継承して作られたのが、FormRequest。
FormRequestのメリットとvalitate()を使ったやり方との違い
FormRequestを使うことで、リクエストデータの検証を簡単にできる。
リクエストを受けた瞬間にバリデーションしてくれるので、コントローラーにvalidateメソッドを使ってバリデーション処理を書くよりも、処理とソースがスッキリする。リクエストの内部で勝手に処理してくれる。
また、FormRequestを継承してカスタマイズすることで、きめ細やかな操作を行えるようになる。例えば、英語のメッセージを日本語化するなど。
FormRequestでできること
1. バリデーションルールの定義
FormRequestクラス内で、リクエストデータの各フィールドに対するバリデーションルールを定義できる。
2. リダイレクトとエラーメッセージ
バリデーションが失敗した場合、FormRequestは自動的にリダイレクトを行い、エラーメッセージをセッションに格納する。
3. ユーザー認証
認証されていないユーザーをアクセスから排除できる。
4. カスタムロジック
FormRequestクラス内にカスタムのバリデーションロジックを追加できる。