Laravelの登録フォーム画面で入力(input)や選択項目(checkbox)にold関数で配列を扱う方法をご紹介します。
ディスプレイ広告
登録フォーム画面(viewファイル)の記述
※登録フォーム画面(viewファイル)の項目に入力・選択後、バリデーションチェックが行われた場合に入力・選択した値を保持(valueに設定)します。
inputタグにoldヘルパーで配列を扱う記述
住所(name=”address”)入力エリアをfor文で繰り返し4箇所作ります。
その際、for文内で
- name属性にname=”address[{{$i}}]”
- value属性に{{ old(“address.$i”) }}
を設定します。
@for($i=0;$i<4;$i++) <input type="text" name="address[{{$i}}]" value="{{ old("address.$i") }}" placeholder="住所を入力"> @endfor
checkboxタグにoldヘルパーで配列を扱う記述
$citys変数に配列としてidとcity_nameが代入されてます。
foreach文をを使って$citys変数配列から「valu値:$city->id」と「label名:$city->city_name」を取得し、chekboxのvlue値とlabelタグに設定します。
- name属性にname=”city_id[{{ $key }}]”
- checked(チェック済みかどうか)に
@if( old(“city_id.$key”) === strval($city->id) ) checked @endif
を記述します。
<ul> @foreach ($citys as $key => $city) <li> <input type="checkbox" value="{{ $city->id }}" id="city_id[{{ $key }}]" name="city_id[{{ $key }}]" @if( old("city_id.$key") === strval($city->id) ) checked @endif> <label for="city_id[{{ $key }}]"> {{ $city->city_name }} </label> </li> @endforeach </ul>
※Laravelのバージョン 6系 で確認した内容になります。
※流用される場合は自己責任でお願いします。