Laravel

Laravelのoldヘルパーを使って更新画面で配列を使用する方法

前回登録フォーム画面で「【Laravel】oldヘルパーで配列を扱う方法(input、checkbox)」をご紹介しましたが、今回はLaravelのoldヘルパーを使って更新画面で配列を使用する方法をご紹介します。

更新画面の記述(例:edit.blade.php)

Laravelのoldヘルパーは、前回のリクエストで受け取った入力値を取得するために使用されます。
配列を更新画面で使用するには以下の方法があります。

配列を表示または編集する必要があるフォームフィールドを作成

通常、name属性に配列を含む名前を使用します。例えば、inputフィールドでmy_array[0]のような名前を使用することができます。

<input type="text" name="my_array[0]" value="{{ old('my_array.0', $data['my_array'][0] ?? '') }}">

上記の例では、oldヘルパーを使用して前回のリクエストでの入力値を取得し、もし入力値がない場合はデフォルト値($data変数から取得)を使用しています。

必要な数のフォームフィールドを作成

配列の要素ごとに繰り返し処理を使用することもできます。

@foreach ($data['my_array'] as $index => $value)
    <input type="text" name="my_array[{{ $index }}]" value="{{ old('my_array.' . $index, $value) }}">
@endforeach

上記の例では、$data[‘my_array’]配列内の各要素に対して、繰り返し処理を行い、oldヘルパーを使用して適切な入力値を表示します。

以上の方法をで前回のリクエストで受け取った入力値が配列に対応して復元されます。

 
※流用される場合は自己責任でお願いします。