但是使用此刀片模板代码:
<tbody>
@foreach ($orders as $order)
<tr>
<td>{{$order->id}}</td> //51 line
<td>{{$order->order->b_first_name}} {{$order->order->b_last_name}}</td>
<td>{{$order->order->r_first_name}} {{$order->order->r_last_name}}</td>
<td>£{{$order->total}}</td>
<td>{{$order->validity->diffForHumans()}}</td>
</tr>
@endforeach
</tbody>
我收到了这个错误:
fbe60fc17d23b35313269a941fc4d6f0第51行中的ErrorException:尝试 获取非对象的属性(查看: /home/dgadmin/public_html/test/resources/views/admin/expired.blade.php)
这是什么问题?为什么我不能使用@foreach循环?
答案 0 :(得分:3)
首先,进入/ storage / framework / views文件夹,查看名为fbe60fc17d23b35313269a941fc4d6f0的文件的第51行。我看到你说这是$ order-&gt; id,但我不确定你是否检查了实际提供的编译视图或admin / expired.blade.php。编译后的视图是抛出错误的视图,因此行号将与编译的视图对应,而不是您正在制作的刀片。当你看到这一行时,你会看到缺少的东西。抛出此错误是因为您尝试访问模型上的空值。如果你想去懒惰路线,请将你的循环改为:
<tbody>
@foreach ($orders as $order)
<tr>
<td>{{isset($order->id)? $order->id: ''}}</td> //51 line
<td>{{isset($order->order->b_first_name)? $order->order->b_first_name : '' }} {{isset($order->order->b_last_name)? $order->order->b_last_name : ''}}</td>
<td>{{isset($order->order->r_first_name)? $order->order->r_first_name : ''}} {{isset($order->order->r_last_name)? $order->order->r_last_name : ''}}</td>
<td>£{{isset($order->total)?$order->total : ''}}</td>
<td>{{$order->validity->diffForHumans()}}</td>
</tr>
@endforeach
</tbody>
这将按预期打印循环,将任何缺失值(如触发此错误的值)更改为空字符串。