我想在每个帖子上显示我的分类
到目前为止,我已尝试过以下内容:
@if(isset($post->category->name_slug))
{{ action('PagesController@showCategory', ['id' => $post->category
>name_slug ]) }} {{ $post->category->name }}
@endif
但仍然没有结果,任何想法?
答案 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
}
如果帖子可以包含多个类别,则需要设置数据透视表。
posts
,category_post
,categories
在category_post
数据透视表中,您有post_id
,category_id
此关系在您的Post.php
模型中定义如下:
public funtion categories() {
return $this->belongsToMany(App\Category::class, 'category_post');
}
要称呼它,当然你使用这样的关系:
Categories:
foreach($post->categories as $category) {
{{ $category->name }}
}