3 回答
TA贡献1804条经验 获得超8个赞
您可以从数据库中获取数据,然后按照您想要的方式对它们进行分组:
$posts = Post::with('categories')->get();
$result = $posts->groupBy([
'categories',
function ($item) {
return $item['category_name'];
},
], $preserveKeys = true);
有关按关系字段分组的更多详细信息:
https://laravel.com/docs/7.x/collections#method-groupby
TA贡献1840条经验 获得超5个赞
根据给定的表:posts 和 categories 表是主表,category_post 表是一个数据透视表,其中包含 posts 和 categories 表之间的关系:
所以,你的关系应该是 posts->category_post->categories
$posts = Posts::with('category_post')->get();
$grouped = $posts->groupBy('category_post.category_id');
category_post 还与类别数据的类别表相关。
TA贡献1895条经验 获得超7个赞
belongsToMany在类别模型中,您可以像下面这样设置和关系
function posts()
{
return $this->beongsToMany(Post::class, 'category_post', 'category_id', 'post_id');
}
- 3 回答
- 0 关注
- 115 浏览
添加回答
举报