フォームリクエストバリデーション
フォームリクエストは、独自のバリデーションおよび認可ロジックをカプセル化する、カスタムリクエストクラス
php artisan make:request XxxXxxRequest
コントローラー側の処理
コントローラー側で入力データを受けるときに、カスタムリクエストクラス型の引数で受ける必要がある
そうすることで、カスタムリクエストクラスで設定したバリデーションチェックを反映させることができる
フォームリクエストバリデーションのメリット
コントローラー側でバリデーションチェックのコードを書かなくてよくなり、シンプルなコード管理が可能
リクエストクラスの2つのメソッド
リクエストクラスの中を確認すると、authorize()
とrule()
の2つのメソッドがある
バリデーションルールは、rule()
に書いていきます
エラーメッセージを表示させる
x-コンポーネントを作成して、その中にエラー処理を書いておくのが主流
@props(['messages']) @if ($messages) <ul {{ $attributes->merge(['class' => 'text-sm text-red-600 dark:text-red-400 space-y-1']) }}> @foreach ((array) $messages as $message) <li>{{ $message }}</li> @endforeach </ul> @endif
viewでエラー対象のコンポーネントを呼び出す
<x-input-error :messages="$errors->get('email')" class="mt-2" />
エラーのあと、入力値を保持したい
old()
を使うことで、入力値を維持できる
・radioボタンで、三項演算子を使ったold()例
<input type="radio" name="gender" value="0" {{ old('gender') == 0 ? 'checked' : '' }}>男性 <input type="radio" name="gender" value="1" {{ old('gender') == 1 ? 'checked' : '' }}>女性