首页 > 解决方案 > Laravel 通过关系 id 收集数据

问题描述

在我的应用程序中,我有一个帖子表、类别表和 category_post 表,因为帖子和类别具有多对多关系。

我想获取所有带有附加类别的帖子,但也将它们组合在一起,因为在我的前端我想成为一个对象的循环并显示这样的列表,

我知道在我的控制器中我可以做到这一点,

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

但是我不知道如何对关系属性进行分组,或者我是否可以以这样一种方式构造返回的数据,以便我可以循环它以形成下面的列表。

标签: phplaraveleloquent

解决方案


根据给定的表:帖子和类别表是主表,而 category_post 表是一个数据透视表,其中包含帖子和类别表之间的关系:

所以,你的关系应该是 posts->category_post->categories

$posts = Posts::with('category_post')->get();

$grouped = $posts->groupBy('category_post.category_id');

category_post 还与类别数据的类别表相关。


推荐阅读