laravel - 在 Laravel 中具有两个参数的 GroupBy 具有嵌套关系
问题描述
我有一个我无法解决的挑战。我的背景:
我有这个模型:
- 用户
{id, ...}
- 所有者
{id, ...}
- 接触
{id, product_id, owner_id, message_id}
- 产品
{id, ...}
- 信息
{id, user_id, message}
关系:
- 所有者有很多联系人。
- 联系人属于一位所有者
- 联系人属于一个产品
- 联系人属于一条消息
- 消息属于用户
然后我的目标是当我打电话时$owner->contacts
,我想要一个 groupBycontact.product_id
和contact.message.user_id
,因为一个产品可以有来自不同用户的消息。期望的输出:
[
{
product_id: "2",
messages: [
{
message_id: "23",
user_id: "13",
message: "...."
},
{
message_id: "53",
user_id: "13",
message: "...."
}
]
},
{
product_id: "2",
messages: [
{
message_id: "3",
user_id: "9",
message: "...."
},
{
message_id: "5",
user_id: "9",
message: "...."
}
]
}
]
我的目的是让所有者的个人资料页面在联系人部分显示一个列表,其中包含他从不同用户的产品中拥有的所有联系人,以及在此联系人组中该产品从同一用户收到的所有消息。
解决方案
推荐阅读
- google-cloud-firestore - 即使文档中缺少请求的字段,如何安全地从 cloud-firestore 获取数据?
- kotlin - 网络调用在 Compose for Desktop Application 的 EXE 分发版本中不起作用
- jquery - 避免对整个 Tbody 进行排序 Jquery Tablesorter
- terraform - Terraform:循环目录以创建单个资源
- python - 如何从 Flask 返回不记名 JWT 令牌?
- rust - 等号在特征绑定中意味着什么?
- spring - Spring Boot中是否允许多个嵌入式容器
- javascript - 在 React.js 中调用 API 数据并将其传递给其他组件
- java - 有什么方法可以在 ACTION_OPEN_DOCUMENT_TREE 上添加自定义额外信息
- python - 用熊猫替换数据框中列的所有值