php - Laravel 通过关系 id 收集数据
问题描述
在我的应用程序中,我有一个帖子表、类别表和 category_post 表,因为帖子和类别具有多对多关系。
我想获取所有带有附加类别的帖子,但也将它们组合在一起,因为在我的前端我想成为一个对象的循环并显示这样的列表,
- 烹饪
- 帖子编号 1
- 帖子编号 3
- 邮政编号 4
- 音乐
- 邮政编号 2
- 邮政编号 5
- 语言
- 邮政编号 6
- 7号帖子
我知道在我的控制器中我可以做到这一点,
$posts = Post::with('categories')->get();
但是我不知道如何对关系属性进行分组,或者我是否可以以这样一种方式构造返回的数据,以便我可以循环它以形成下面的列表。
解决方案
根据给定的表:帖子和类别表是主表,而 category_post 表是一个数据透视表,其中包含帖子和类别表之间的关系:
所以,你的关系应该是 posts->category_post->categories
$posts = Posts::with('category_post')->get();
$grouped = $posts->groupBy('category_post.category_id');
category_post 还与类别数据的类别表相关。
推荐阅读
- c++ - C++ 从磁盘读取文件并将其写入共享内存
- python - Python:我的 Miller-Rabin 实现有什么问题?
- python - 过滤 BLAST 序列的数据帧以在每个集群内获得最大 pident_x
- python - Wagtail 自定义内联 PageChooser
- r - 将列添加到输出函数
- codenameone - 奇怪的 mkdir() 行为
- python - 如何基于回溯修复我的数独求解器
- suitecrm - pdf模板中变量的SuiteCRM渲染格式(如日期)
- sql - 具有空行的 SQL Server 中的 CASE
- javascript - 在 node.js 中重命名文件夹失败