在Laravel eloquent中显示筛选供应商的采购订单基础列表

在Laravel eloquent中显示筛选供应商的采购订单基础列表,laravel,eloquent,Laravel,Eloquent,我试图在表格中显示供应商列表及其采购订单 ... @foreach ($vendor_list as $key => $vendorPoList) <tr> <td> {{ $vendorPoList}} </td> </tr> @endforeach ... 供应商模型 public function vendorPo() { return $this-&

我试图在表格中显示供应商列表及其采购订单

...
@foreach ($vendor_list as $key => $vendorPoList)
     <tr>
        <td>
            {{ $vendorPoList}}
        </td>
     </tr>
@endforeach
...
供应商模型

public function vendorPo()
{
    return $this->hasMany('App\PurchasedOrder', 'vendor_id','vendor_id');
}
...
@foreach ($vendor_list as $key => $vendorPoList)
     <tr>
        <td>
            {{ $vendorPoList}}
        </td>
     </tr>
@endforeach
...
供应商控制员

public function vendor()
{
    $vendorPo = Vendor::with('vendorPo')
        ->get()
        ->keyBy('id')
        ->groupBy('vendor_name');

    $purchaseOrders = PurchasedOrder::all()->where('publish','=','1');

    return view('backend.purchase-order.vendor', compact('purchaseOrders'))
            ->with('vendorPo', $vendorPo);
}
...
@foreach ($vendor_list as $key => $vendorPoList)
     <tr>
        <td>
            {{ $vendorPoList}}
        </td>
     </tr>
@endforeach
...
我的索引

@foreach ($vendorPo as $vendor => $vendor_list)
    <tr>
        <th colspan="7"
            style="background-color: #F7F7F7"> {{ $vendor }}: ({{ $vendor_list->count() }} vendors)
        </th>
    </tr>
        @foreach ($vendor_list as $key => $vendorPoList)
        <tr>
            <td>
                {{ $vendorPoList->vendorPo->po_id}}
            </td>
        </tr>
        @endforeach
@endforeach
...
@foreach ($vendor_list as $key => $vendorPoList)
     <tr>
        <td>
            {{ $vendorPoList}}
        </td>
     </tr>
@endforeach
...

请帮帮我。谢谢

您之所以会遇到此问题,是因为您的
vendorPO
关系是一个
有许多关系的关系。如果您从这种关系中提取记录,结果总是一个数组(即使只有一条记录),它总是通过Eloquent转换为
集合

...
@foreach ($vendor_list as $key => $vendorPoList)
     <tr>
        <td>
            {{ $vendorPoList}}
        </td>
     </tr>
@endforeach
...
因此,
$vendorPoList->vendorPO
是一个集合,集合中没有名为
po\u id
的变量

...
@foreach ($vendor_list as $key => $vendorPoList)
     <tr>
        <td>
            {{ $vendorPoList}}
        </td>
     </tr>
@endforeach
...
根据您的数据模型,您应该重新访问关系,或者在
$vendorPoList->vendorPO
上执行
@foreach

...
@foreach ($vendor_list as $key => $vendorPoList)
     <tr>
        <td>
            {{ $vendorPoList}}
        </td>
     </tr>
@endforeach
...