php - Laravel 5.1 无法在集合上使用 @foreach

标签 php laravel foreach laravel-blade

这是我拥有的数据: enter image description here

但使用此 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,但我不确定你是否检查了实际提供的编译 View 或 admin/expired.blade.php。编译 View 是抛出错误的 View ,因此行号将与编译 View 相对应,而不是您正在制作的 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>

这将按预期打印循环,将任何缺失值(例如触发此错误的值)更改为空白字符串。

关于php - Laravel 5.1 无法在集合上使用 @foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47800675/

相关文章:

php - 如何从 propel 对象集合中获取 "id"的对象?

php - Laravel - 如何按 ID 升序对对象数组进行排序

php - Laravel 关系工作,但显示它 -> 试图获取非对象的属性

excel - 用于过滤列的VBA

php - 我可以在这里使用 foreach 进行多次上传吗?

php - Facebook getLogoutUrl() 无法按预期工作

php - 是否可以使用 PHP 开发 Windows 应用程序?

php - 在 php 中执行多个操作

facebook - 使用 Laravel Socialite 获取 Facebook 长期访问 token

在函数上下文中使用 this 关键字的 JavaScript 回调