您好,我有多个db表(‘经销商,供应商,历史记录’),并试图在经销商索引中显示与经销商相关的供应商数据(在经销商表中,supplier_id用作外键),但它显示错误:为foreach(),,,我正在尝试从经销商那里获取历史数据,按供应商id索引,,,
请注意,只有经销商显示在索引上,我正在使用资源路由
索引代码:
@foreach ($data as $row)
<tr>
<td>{{ $row->dealer_name }}</td>
<td>
@foreach($row->supplier as $sp)
{{ $sp->supplier_name }}<br>
@endforeach
</td>
</tr>
@endforeach控制器代码:
$data = Dealer::all();
return view('dealer.index', compact('data'));供应商模型:
public function dealerHistory()
{
return $this->hasoneThrough('App\History', 'App\Dealer');
}根据此https://laravel.com/docs/5.8/eloquent-relationships#has-one-through,所有其他型号中只有受保护的可填充内容
发布于 2019-07-28 02:27:52
@foreach ($data as $row)
<tr>
<td>{{ $row->dealer_name }}</td>
<td>
@if(!empty($row->supplier()))
@foreach($row->supplier as $sp)
{{ $sp->supplier_name }}<br>
@endforeach
@endif
</td>
</tr>
@endforeach发布于 2019-07-28 02:31:00
在这里,正如您提到的经销商所显示的,那么问题一定出在@foreach($row->supplier as $sp)中
由于错误显示为foreach()提供的参数无效,您需要验证$row->supplier是否为数组。
@foreach ($data as $row)
<tr>
<td>{{ $row->dealer_name }}</td>
<td>
@if(is_array($row->supplier) && !empty($row->supplier))
@foreach($row->supplier as $sp)
{{ $sp->supplier_name }}<br>
@endforeach
@endif
</td>
</tr>
@endforeachhttps://stackoverflow.com/questions/57234866
复制相似问题