前提・実現したいこと
お世話になっております。Laravel5.7.15で開発をしています。
DBから取得したデータを画面に表示し、そのまま次の画面でも同じように表示したいのですがうまくいきません。
発生している問題・エラーメッセージ
取得したデータは以下のようになっています。
[{"id":1,"account":"test01"},{"id":2,"account":"test02"},{"id":3,"account":"test03"},{"id":4,"account":"test04"}]
これをaccountsという名前でbladeに渡し、foreachで回して表示
Blade
1@foreach($accounts as $index => $account) 2 <span class="span">{{ $account['account'] }} </span> 3@endforeach
ここまではできているのですが、次の画面でも同じように表示したいと思い、
Blade
1<input type="hidden" value="{{ $accounts }}" name="accounts">
このようにしてpostで渡したところ、$accountsが丸ごと文字列として渡されてしまいforeachができませんでした。
なのでinputをこのように書き換え、
Blade
1@foreach($accounts as $index => $account) 2 <span class="span">{{ $account['account'] }} </span> 3 <input type="hidden" value="{{ $account['id'] }}" name="accounts[{{ $index }}][id]"> 4 <input type="hidden" value="{{ $account['account'] }}" name="accounts[{{ $index }}][account]"> 5@endforeach
この配列を次の画面に渡しました。
array ( 0 => array ( 'id' => '1', 'account' => 'test01', ), 1 => array ( 'id' => '2', 'account' => 'test02', ), 2 => array ( 'id' => '3', 'account' => 'test03', ), 3 => array ( 'id' => '4', 'account' => 'test04', ), )
多次元配列だったので次の画面で以下のように書いたのですが、Illegal string offset 'account' というエラーが出てしまいました。
Blade
1@foreach($accounts as $row) 2 @foreach($row as $account) 3 <span class="span">{{ $account['account'] }} </span> 4 @endforeach 5@endforeach
試したこと
以上のことを試したのですが、配列が苦手すぎて訳が分からなくなったので質問しました。
初歩的なところでミスをしている気がしますが、教えていただけるとありがたいです。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/24 08:27