有很多关系问题 laravel 5

hasMany relation problam laravel 5

我正在尝试在页面名称旁边打印每个页面的类别。 所以我做了一个模型并将其命名为 Page。在里面我有这个:

public function cat() {
    return $this->belongsTo('App\Cat');
}

这是我的控制器:

public function pages()
{
    $view = view('cp.pages.all');
    $view->pages = Page::all();
    return $view;
}

在我看来我有这个:

@foreach($pages as $page)
    <tr>
        <td>{{ $page->cat->nam }}</td>
        <td style="text-align: center;">{{ $cat->id }}</td>
    </tr>
@endforeach

name 是我数据库中类别名称的字段名称。

但我不断收到此错误:

Trying to get property of non-object (View: C:\wamp\www\mvc\resources\views\cp\pages\all.blade.php)

和想法?

看起来并不是每个页面都分配了类别。您可以通过将其包装在 @if:

中来避免此错误
<td>
    @if($page->cat)
        {{ $page->cat->nam }}
    @endif
</td>

或者在一个班轮中:

<td>{{ ($page->cat ? $page->cat->nam : '') }}</td>