質問失礼します。
Laravelにてmysqlのデータを取得後にその一覧を表示するプロジェクトを作成しているのですが、@foreachでの繰り返しがうまく行きません。
アドバイスをお願いいたします。
エラー内容
Invalid argument supplied for foreach()
mvcの流れが以下になります。
controller
use App\date_table; class work extends Controller { public function doGet() { $data = DB::table('date_table')->get(); return view('index', compact('data')); } }
model
class Date_table extends Model { protected $table = 'date_table'; public $timestamps = false; public function getData() { $data = DB::table($this->table)->get(); return $data; } }
view
@foreach($data ?? '' as $d) <TR> <TH> {{ $d->No ?? '' }} </TH> <TH> {{ $d->Year ?? '' }} </TH> <TH> {{ $d->Month ?? '' }} </TH> <TH> {{ $d->Day ?? '' }} </TH> <TH> {{ $d->StartTime ?? '' }} </TH> <TH> {{ $d->EndTime ?? '' }} </TH> </TR> @endforeach
エラーから調べたことは配列、またはオブジェクトではないため、foreachが使えないと出てきたため
@foreach((array)$data ?? '' as $d)
とすれば解決できると思いましたが、今度は
Make the variable optional in the blade template. Replace {{ $data }} with {{ $data ?? '' }}
とのエラーが消えなくなりました。
解決したいことは、データを@foreachで一覧表示できるように改善したいです。
@foreachではありませんが表示自体はできます。
添字での表示ができるので配列ではないのでしょうか?
<?php $i = 0; ?> <TR> <TH> {{ $data[$i]->No ?? '' }} </TH> <TH> {{ $data[$i]->Year ?? '' }} </TH> <TH> {{ $data[$i]->Month ?? '' }} </TH> <TH> {{ $data[$i]->Day ?? '' }} </TH> <TH> {{ $data[$i]->StartTime ?? '' }} </TH> <TH> {{ $data[$i]->EndTime ?? '' }} </TH> <TR>
回答1件
あなたの回答
tips
プレビュー