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

时间:2013-01-11 20:38:29

标签: php laravel eloquent blade

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

使用Eloquent,我设置了2个模型,其中AppointmentbelongsTo的关系Room。 在检索之后(使用预先加载):

$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 个答案:

答案 0 :(得分:4)

集合中的第二个约会没有空间,因此,$appointment->roomnull,因此您基本上正在执行null->name

enter image description here

解决方法是检查房间是否已设置。

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

希望有所帮助