Laravel フォーム入力内容の復元
- 2021年12月02日
- 技術情報
入力フォームを設置する場合に編集モードでは、DBに登録されている値を初期値として表示、
またバリデーションエラーになった場合はフォームに入力した値を復元したい場合があります。
そのような場合は、Laravelではold関数を使用することで簡単に対応できますので
その方法をシェアしたいと思います。
old関数について
{{ old(‘name’) }}
old関数の第2引数にデフォルト値が設定できます。DBに登録されている値を
初期値として表示したい場合に便利です。
{{ old(‘name’, ‘デフォルト値’) }}
テキストボックスの使用例
最もシンプルなテキストボックスでの使用例です。
<input type="text" name="name" id="name" value="{{ old('name', $recdata['name']) }}">
ラジオボタンの使用例
ラジオボタンは複数の選択肢の中からひとつだけ選択できる入力フォーマットです。
選択しているボタンの属性に「checked」をつけ加えるためold関数の値から条件分岐を設定しています。
@foreach ($list as $item)
<span><input type="radio" name="gender" id="gender{{$item->code}}" value="{{$item->code}}"
{{ old('gender', $recdata['gender'])==$item->code ? 'checked':'' }}>
<label for="gender{{$item->code}}" class="radio">{{$item->value}}</label></span>
@endforeach
プルダウンメニューの使用例
プルダウンメニューは複数の選択肢の中からひとつだけ選択できる入力フォーマットです。
選択しているリストアイテムの属性に「selected」をつけ加えるためold関数の値から条件分岐を設定しています。
<select name="pref" id="pref">
<option value="">都道府県を選択</option>
@foreach ($prefs as $pref)
<option value="{{$pref->code}}"
{{ old('pref', $recdata['pref'])==$pref->code ? 'selected':'' }}>
{{$pref->value}}</option>
@endforeach
</select>
チェックボックスの使用例
チェックボックスは複数の選択肢の中から複数選択可能な入力フォーマットです。
複数選択可能なため配列になっています。
選択しているチェックボックスの属性に「checked」をつけ加えるためold関数の値から条件分岐を設定しています。
@foreach ($list as $item)
<span><input type="checkbox" name="fav_player[]" id="fav_player{{$item->code}}" value="{{$item->code}}"
@if (is_array(old("fav_player", $recdata['fav_player'])) && in_array($item->code, old('fav_player', $recdata['fav_player']))) checked @endif>
<label for="fav_player{{$item->code}}" class="checkbox">{{$item->value}}</label></span>
@endforeach
木曜日担当:nishida
nishida at 2021年12月02日 10:00:00