Laravel

【Laravel】oldヘルパーで配列を扱う方法(input、checkbox)

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系 で確認した内容になります。
※流用される場合は自己責任でお願いします。