Laravel 5.8: 试图获得 属性 'prd_name' 的 non-object
Laravel 5.8: Trying to get property 'prd_name' of non-object
我正在开发一个 Laravel 5.8 项目,它是一个在线商店。在这个项目中,我想为管理员添加“打印顺序因素”功能。
所以我做了一个这样的表格:
<form method="POST" action="{{ route('orders.newprint') }}">
@csrf
@forelse($orders as $order)
<tr>
<td><input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}"> </td>
<td>{{ $order->ord_id }}</td>
<td>{{ $order->status_label }}</td>
<td>{{ $order->customer_name }}</td>
<td>{{ $order->ord_total }}</td>
</tr>
@empty
<td colspan="7" class="text-center">No order to show</td>
@endforelse
</form>
所以基本上管理员可以 select 多个这样的订单:
我正在尝试将订单 ID 作为数组发送:
<input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}">
然后在控制器中我添加了这个:
if(!empty($request->input('orderCheck'))) {
$args = [];
$orders = $request->input('orderCheck');
foreach ($orders as $ord) {
$order = Order::find($ord);
$args[] = [
'order' => $order,
'address' => $order->order_address->first(),
'details' => $order->orderDetail,
'sendType' => $order->productSubmit,
'coupons' => $this->cartController->computeDiscountForOutRequests($order->ord_object_id, $order->ord_creator_id),
'user' => User::query()->find($order->ord_creator_id)
];
}
view('admin.shop.orders.printfactors', compact('args'));
}else{
return back();
}
最后在 Blade printfactors.blade.php
:
@foreach($args as $arg)
...
@forelse($arg['details'] as $detail)
{{ $detail->product->prd_name }}
@empty
@endforelse
@endforeach
但是我得到这个错误:
正在尝试获取 non-object 的 属性 'product'(查看:printfactors.blade.php)
那么如何解决呢?
非常感谢你们对此的任何想法或建议...
谢谢。
这是 dd($detail)
的结果:
根据您的信息,$arg['details']
似乎不会变空,并且在循环中获取关系 product
时,$detail
的值之一变为 null
.
尝试调试每个订单,$arg['details']
的值是多少。
我正在开发一个 Laravel 5.8 项目,它是一个在线商店。在这个项目中,我想为管理员添加“打印顺序因素”功能。
所以我做了一个这样的表格:
<form method="POST" action="{{ route('orders.newprint') }}">
@csrf
@forelse($orders as $order)
<tr>
<td><input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}"> </td>
<td>{{ $order->ord_id }}</td>
<td>{{ $order->status_label }}</td>
<td>{{ $order->customer_name }}</td>
<td>{{ $order->ord_total }}</td>
</tr>
@empty
<td colspan="7" class="text-center">No order to show</td>
@endforelse
</form>
所以基本上管理员可以 select 多个这样的订单:
我正在尝试将订单 ID 作为数组发送:
<input class="form-check-input" name="orderCheck[]" type="checkbox" value="{{ $order->ord_id }}">
然后在控制器中我添加了这个:
if(!empty($request->input('orderCheck'))) {
$args = [];
$orders = $request->input('orderCheck');
foreach ($orders as $ord) {
$order = Order::find($ord);
$args[] = [
'order' => $order,
'address' => $order->order_address->first(),
'details' => $order->orderDetail,
'sendType' => $order->productSubmit,
'coupons' => $this->cartController->computeDiscountForOutRequests($order->ord_object_id, $order->ord_creator_id),
'user' => User::query()->find($order->ord_creator_id)
];
}
view('admin.shop.orders.printfactors', compact('args'));
}else{
return back();
}
最后在 Blade printfactors.blade.php
:
@foreach($args as $arg)
...
@forelse($arg['details'] as $detail)
{{ $detail->product->prd_name }}
@empty
@endforelse
@endforeach
但是我得到这个错误:
正在尝试获取 non-object 的 属性 'product'(查看:printfactors.blade.php)
那么如何解决呢?
非常感谢你们对此的任何想法或建议...
谢谢。
这是 dd($detail)
的结果:
根据您的信息,$arg['details']
似乎不会变空,并且在循环中获取关系 product
时,$detail
的值之一变为 null
.
尝试调试每个订单,$arg['details']
的值是多少。