我正在处理ajax请求并在我的控制器中查询我的数据库。
控制器:
$prod_id = $request->prod_type;
$data = types::where('id', $prod_id)->with('products')->get();
return view('pages.types')->with('data',$data);
返回$data
时,它会根据数据库中查询的type
显示所有产品。但是,当在我的视图中循环$data
时,它似乎只循环一次并且只显示一张卡。
查看:
@foreach($data as $type )
<div class="col-sm-3 mb-3">
<div class="card h-100">
<div class="card-body">
<h4 class="card-title"><a href="/products/{{$type->products[0]->id}}">{{$type->products[0]->Product_Name}}</a></h4>
<p class="card-text">...</p>
</div>
</div>
</div>
@endforeach
我意识到我只是要求products[0]
的第一个对象,但如果省略则会出现property[id] does not exists in collection instance
错误。
答案 0 :(得分:1)
我认为你在这里循环这个类型,但你实际上想要循环产品。试试这个:
@foreach($data[0]->products as $product )
<div class="col-sm-3 mb-3">
<div class="card h-100">
<div class="card-body">
<h4 class="card-title"><a href="/products/{{$product->id}}">{{$product->Product_Name}}</a></h4>
<p class="card-text">...</p>
</div>
</div>
</div>
@endforeach
<强>更新强>
好的,我已经更新了代码示例,以便它只是循环遍历第一个Type
对象的产品 - 我认为这就是你想要的,因为它看起来只是控制器只获得一种类型?