首页 > 解决方案 > Laravel 面包屑有问题

问题描述

我正在使用 davejamesmiller 的 Breadcrumbs 包,在帖子视图中获取帖子类别时遇到了一些麻烦。我希望我的面包屑是这样的:

Home > Category > Post

我这样定义面包屑:

// Home
    Breadcrumbs::for('home', function ($trail) {
    $trail->push('Home', route('home'));
});

// Home > [Category]
Breadcrumbs::for('category', function ($trail, $category) {
    $trail->parent('home');
    $trail->push($category->title, route('category', $category->slug));
});

// Home > [Category] > [Post]
Breadcrumbs::for('post', function ($trail, $post) {
    $trail->parent('category', $post->category);
    $trail->push($post->title, route('post', $post->slug));
});

并在帖子视图模板中调用此代码以输出面包屑:

{{ Breadcrumbs::render( 'course', $course, $category ) }}

但收到此错误:

Undefined property: stdClass::$category

这指的是这一行定义的面包屑:

$trail->parent('category', $post->category);

我的帖子表没有类别列,我不知道应该将什么作为父方法的第二个参数传递!我应该将其他表中的帖子类别行传递给我的帖子视图吗?我应该传递什么作为第二个参数?

标签: laravelbreadcrumbs

解决方案


我通过将$category变量传递给我定义的面包屑来解决我的问题。像这样:

Breadcrumbs::for('post', function ($trail, $post, $category) {
    $trail->parent('category', $category);
    $trail->push($post->title, route('post', $post->slug));
});

然后在我看来,我将输出代码更改为:

{{ Breadcrumbs::render( 'post', $post, $category ) }}

我还通过帖子的类别表行从控制器查看。


推荐阅读