Laravel 5.1 无法在 collection 上使用 @foreach
Laravel 5.1 cant use @foreach on collection
这是我的数据:
但使用此 blade 模板代码:
<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>
我遇到了这个错误:
ErrorException in fbe60fc17d23b35313269a941fc4d6f0 line 51: Trying to
get property of non-object (View:
/home/dgadmin/public_html/test/resources/views/admin/expired.blade.php)
这里有什么问题?为什么我不能使用@foreach 循环?
首先,进入您的 /storage/framework/views 文件夹并查看第 51 行中名为 fbe60fc17d23b35313269a941fc4d6f0 的文件。我看到你说是$order->id,但我不确定你检查的是实际服务的编译视图还是admin/expired.blade.php。编译视图是抛出错误的视图,因此行号将与编译视图相对应,而不是您正在制作的 blade 。当您查看此行时,您会发现缺少的内容。抛出此错误是因为您正试图访问模型上的空值。如果您想走懒惰的路线,请将循环更改为:
<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>
这将按预期打印循环,将任何缺失值(如触发此错误的值)更改为空字符串。
这是我的数据:
但使用此 blade 模板代码:
<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>
我遇到了这个错误:
ErrorException in fbe60fc17d23b35313269a941fc4d6f0 line 51: Trying to get property of non-object (View: /home/dgadmin/public_html/test/resources/views/admin/expired.blade.php)
这里有什么问题?为什么我不能使用@foreach 循环?
首先,进入您的 /storage/framework/views 文件夹并查看第 51 行中名为 fbe60fc17d23b35313269a941fc4d6f0 的文件。我看到你说是$order->id,但我不确定你检查的是实际服务的编译视图还是admin/expired.blade.php。编译视图是抛出错误的视图,因此行号将与编译视图相对应,而不是您正在制作的 blade 。当您查看此行时,您会发现缺少的内容。抛出此错误是因为您正试图访问模型上的空值。如果您想走懒惰的路线,请将循环更改为:
<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>
这将按预期打印循环,将任何缺失值(如触发此错误的值)更改为空字符串。