バリデーション

フォームリクエストバリデーション

フォームリクエストは、独自のバリデーションおよび認可ロジックをカプセル化する、カスタムリクエストクラス

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' : '' }}>女性