尝试在刀片中获取非对象属性时出错



所以我试图传递数据给视图:

$orders = $this
->query()
->where('user_id', '=', $id)
->with(['payment', 'payment.paymentStatus'])
->get();
return view('profile.profile-orders', compact('orders'));

我得到这个有效载荷:

{
"id": 4,
"order_id": 4,
"status": 1,
"price": 897,
"payment_date": "2021-10-11 18:11:50",
"payment_status": {
"id": 1,
"title": "Not paid",
"status_color": "#d1dade",
},
"order": {
"id": 4,
"customer_id": 4,
"created_at": "2021-10-11T18:11:33.000000Z",
"updated_at": "2021-10-11T18:11:33.000000Z",
"items": [
{
"id": 5,
"amount": 1,
"price": 697,
"product": {
"id": 1,
"price": "697.00",
"order": 1,
"images": [
{
"img": "image1"
},
{
"img": "image2"
}
],
}
}
]
}
}

在我的视图中,我尝试得到payment_status->title

@foreach($orders as $order)
<tr>
<td>{{ $order->payment->payment_status->title }}</td>
</tr>
@endforeach

但是我得到这个错误Trying to get property 'title' of non-object我如何修复这个错误?

我认为所有你需要的是一个数组访问([])而不是一个对象访问(->)。所以你的代码应该是:

@foreach($orders as $order)
<tr>
<td>{{ $order->payment->payment_status['title'] }}</td>
</tr>
@endforeach

你可以试试这样做。

@foreach($orders as $order)
<tr>
<td>{{ $order->payment_status->title }}</td>
</tr>
@endforeach

最新更新