Laravel サーバサイド

[入門者向け]5分でわかるLaravelのリクエストクラスを作成してコントローラに渡す前にバリデーションする方法

どうも、シローです。

普段はサーバサイドやフロントサイドの開発をしております。

今回はLaravelのバリデーション用のクラスを作成してフォームデータをコントローラに渡す前にバリデーションする方法をご紹介します。

この記事の対象者

  • Laravelを触り始めた人
  • リクエストクラスでフォームデータをコントローラに渡す前にバリデーションしたい方

リクエストクラスの作成

リクエストクラスは次のArtisanコマンドで作成できます。

これでapp/Http/Requests/BoardCreateRequest.phpが作成されます。

リクエストクラスを編集

作成したBoardCreateRequestを編集します。

 

authorize関数は「このバリデーションを実行する権限があるかどうか」を判別する関数です。falseを返すとバリデーションは実行せず、403エラーを返します。

なので、通常はtrueにしておけば大丈夫です。

rules関数はフォームデータのバリデーションルールを定義します。渡されたデータの全てのパラメータがバリデーションルールを満たしていればコントローラに処理を流し、ルールを満たしていないパラメータがあればエラーメッセージを返します。

リクエストクラスを使ってバリデーションを行う

リクエストクラスはコントローラで実行する関数の引数の型に指定することで、関数の実行前にバリデーションを実行してくれます。

試しにフォームを空にして送信してcreate関数を実行すると、バリデーションエラーを表示してくれるようになります。

まとめ

  • リクエストクラスを使うことでフォームデータのバリデーションをコントローラに渡す前に実行してくれる
  • Artisanコマンドを使うことで、リクエストクラスの雛形を作成できる

本記事がリクエストクラスを使ったバリデーションを試したい人に少しでも参考になれば幸いです。

-Laravel, サーバサイド

© 2024 Shiro's secret base