Laravel(blade)のフォームでエラー時の値を保持する方法
2024.06.11 09:00
2024.06.06 18:28

laravelとbladeでフォームを作った時のエラー処理のお話です。
エラーで入力画面に戻ってきた際、問題ない値はフォームに入力されていてほしいですね。
bladeなら「old」を使うと簡単にできるみたいです。
なのでやってみました。
こんな感じです。
<input type="text" name="kana" value="{{ old('kana', '') }}">
valueの部分に「{{ old(‘name’, ”) }}」を指定しました。
これでエラーで戻ってきても自動で入力されている状況を作れます。
oldの第一引数にそのフォームの変数名を入れます。ここだと「kana」になりますね。
第二引数に入力前の初期値を入れます。通常は空白でいいでしょう。
フォームの変数名に配列を使う場合はこんな感じ。
<input type="text" name="contact[kana]" value="{{ old('contact.kana', '') }}">
フォームが2つ以上あったり、複雑なデータ構造の場合は便利そうです。
他にも、radioの場合はこんな感じでcheckedを入れてあげます。
{{ old ('gender', '') == '男性' ? 'checked' : '' }}
全部書くとこんな感じです。
<input type="radio" value="男性" id="male" {{ old ('gender', '') == '男性' ? 'checked' : '' }}>
<label for="male">男性</label>
<input type="radio" value="女性" id="female" {{ old ('gender', '') == '女性' ? 'checked' : '' }}>
<label for="female">女性</label>
これで選択された方にだけcheckedがつきますね。
入力がvalueの値と同じならcheckedをつけるということです。
ちなみにcheckboxやselectも同じ発想です。
今回は以上です!