尝试访问 Laravel 4 中的关系数据时出错

Posted

技术标签:

【中文标题】尝试访问 Laravel 4 中的关系数据时出错【英文标题】:Error when trying to access data of relation in Laravel 4 【发布时间】:2012-12-26 12:18:28 【问题描述】:

我已经使用 Laravel 4 几天了,我偶然发现了一些我似乎无法修复的问题。

使用 Eloquent,我设置了 2 个模型,其中 AppointmentRoom 具有 belongsTo 关系。 像这样检索它之后(使用急切加载):

$appointments = Appointment::with('room')->get();

在我的视图中打印它:http://paste.laravel.com/fnL

我遍历它并检索 Appointment 的值:

@foreach($appointments as $appointment)
    <tr>
        <td> $appointment->begins_at </td>
        <td>
            <a href="/admin/appointments/delete/ $appointment->id " class="btn btn-mini btn-danger">Verwijderen</a>
        </td>
    </tr>
@endforeach

这很好,但是当我添加以下行时:

<td> $appointment->room->name </td>

它会抛出以下错误:

ErrorException: Notice: Trying to get property of non-object

我可能只是忽略了一些东西,但我已经看了很长时间了,但我只是没有看到它......

提前感谢您的帮助!

【问题讨论】:

【参考方案1】:

集合中的第二个约会没有房间,因此,$appointment-&gt;roomnull,所以你实际上是在做null-&gt;name

解决办法是检查房间是否设置好了。

@if($appointment->room)
     $appointment->room->name 
@endif

希望有帮助

【讨论】:

我确实在这个应用程序上工作了太久...非常感谢!

以上是关于尝试访问 Laravel 4 中的关系数据时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 laravel 8 惯性中的模型访问关系

在 Laravel 中使用 Mockery/phpUnit 时出错

将 Laravel 安装克隆到 Homestead 时出错 - 是数据库问题还是证书问题?

在Laravel 5.6中尝试获取非对象属性时出错

更新到 Laravel 5.4 时出错

尝试迁移Laravel数据库时出错