我无法显示与ManyToMany关系的帖子类别

时间:2020-08-19 09:28:55

标签: php laravel pivot

我无法显示具有manyToMany关系的帖子类别。我建立关系但无法显示它。

//这是我的帖子模型

public function getCategory(){
        return $this->belongsToMany(Category::class,
'post_categories','id','post_id');
   }

//这是我的控制器

public function Allindex(){
    $posts=Post::all();

    return view('allposts',compact('posts'));

}

///这是我的allposts刀片服务器

   <div class="media-body">
<a href="/users" class="anchor-username"><h4 class="media-heading">{{$post->pivot['name']}}</h4></a>
<a href="/posts" class="anchor-time">{{$post->created_at}}</a>
   </div>

2 个答案:

答案 0 :(得分:1)

您在模型关系中传递了错误的参数。

public function getCategory(){
    return $this->belongsToMany(Category::class,'post_categories','post_id','category_id');
}

现在您可以按以下方式访问它。

@foreach($post->getCategory as $category) 
{{ $category->name }} 
@endforeach

{{ $post->getCategory->pluck('name')->implode(',') }}

答案 1 :(得分:-1)

Laravel不会自动加载您的关系,您正在寻找的关键字是eager loading

您可以像这样急于使用with方法加载关系:

$posts = Post::with('getCategory')->get();