如何在每个帖子中显示类别

时间:2015-11-25 11:50:04

标签: php laravel-5

我想在每个帖子上显示我的分类

到目前为止,我已尝试过以下内容:

@if(isset($post->category->name_slug))
   {{ action('PagesController@showCategory', ['id' => $post->category
       >name_slug ]) }} {{ $post->category->name }}
@endif

但仍然没有结果,任何想法?

2 个答案:

答案 0 :(得分:0)

为了显示帖子的所有类别,您只需循环浏览帖子的类别,如下所示:

我根据您问题的变化更新了我的代码

// post here refers to the current post you are displaying 
// so this loop may be contained inside another loop that displays the posts

    {{ $post->category->name }}

从上面发布的代码中,我怀疑您是否正确地在Post模型中命名了您的关系,因为它应该是categories而不是category

答案 1 :(得分:0)

Post.php模型中设置与类别的关系

public function category() {
    return $this->belongsTo(App\Category::class);
}

Category.php模型中,设置与多个帖子的关系

public function posts() {
   return $this->hasMany(App\Post::class);
}

现在,只要您的posts表格中有category_id列,就可以调用这些关系。

Category: {{ $post->category->name }}

当然,如果您想要列出某个类别中的所有帖子:

foreach($category->posts as $post) {
    // do something here
}

如果帖子可以包含多个类别,则需要设置数据透视表。 postscategory_postcategories

category_post数据透视表中,您有post_idcategory_id

此关系在您的Post.php模型中定义如下:

public funtion categories() {
    return $this->belongsToMany(App\Category::class, 'category_post');
}

要称呼它,当然你使用这样的关系:

Categories:

foreach($post->categories as $category) {
   {{ $category->name }}
}