Laravel7 フォームリクエストクラスを使用してバリデーション機能を実装する。

Laravel7 フォームリクエストクラスを使用してバリデーション機能を実装する。

Laravel7でフォームリクエストクラスを使用してバリデーションを実装する手順を記述してます。

環境

  • OS windows10 pro 64bit
  • Composer 1.10.5
  • PHP 7.4.5
  • MariaDB 10.4.12
  • Laravel Framework 7.6.2

※windows10に Laravel のインストールはこちら
※windows10に Composer のインストールはこちら
※windows10に PHP のインストールはこちら
※windows10に MariaDB のインストールはこちら

bootstrap導入

レイアウトにbootstrapを利用しているので、下記のコマンドで利用可能にします。
※ 詳しい手順はこちらに記述してます

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

下記のコマンドでフォームリクエストクラスを作成します。
※ここではHogeRequestという名前で作成してます。

app\Http\Requestsに「HogeRequest.php」が作成されているので、下記のようにバリデーションを追加して、独自メッセージも作成します。

入力フォーム用コントローラー作成

まずはテスト用の入力フォームを作成していきます。
「NameController」という名前でコントローラーを作成します。

app/Http/Controllers/ NameController.phpが生成されているので、
formメソッドとHogeRequestを使用して、バリデーションと確認用のshowメソッドを作成します。

入力フォーム用ビュー作成

次にレイアウト部であるviewを作成します。

resources\views内で「name」というフォルダを作成して「form.blade.php」を下記の内容で、新たに作成します。

@csrf は Bladeテンプレート機能の1つで、CSRF対策となります。

下記のコードがerrorメッセージを表示する箇所となります。

oldは、入力エラー時の値を取得することができます。

次に resources\views\name内でリクエストデータ取得用の「show.blade.php」を下記の内容で、新たに作成します。

ルーティング追加

アクセスするURLを設定するため、ルーティングを記述します。
ここでは/nameに設定します。

確認

ブラウザから http://localhost:8000/name にアクセスしてみて、バリデーションと作成したエラーメッセージが有効になっていることが確認できます。