登録画面などでバリデーションを使う際、入力値が保持されない問題が発生。直前の入力値を保持するための方法をメモとして残しておきます。
Laravelでバリデーション失敗時に入力値を保持するoldヘルパの使い方
view側(Bladeテンプレート)で直前の入力値を保持するには「old」ヘルパを使います。入力していない場合はnullを返します。
1 | <input type=’text’ name=’name’ value="{{ old(‘name’) }}"> |
公式では上のように書いていますが、下のような書き方でもいけます。
1 | {!! Form::text('name’, old('name’)) !!} |
Laravelバリデーションのoldヘルパの使用例
1 2 3 4 5 6 7 8 9 10 11 12 | ... <div class="input-field"> {!! Form::text('name’, old('name'), ['placeholder' => '例) hoge']) !!} <!-- バリデーション失敗時にエラーメッセージが表示される --> @if($errors->has('name')) <p class=’error’>{{ $errors->first('name') }}</p> @endif <label for=’name’ class=’name-label’>名前</label> </div> ... |
以上、Laravelのバリデーション失敗時に入力値を保持する方法でした。