使用with关联时如何隐藏中间表

现有结构

使用with关联时如何隐藏中间表

预期结构

"labels": [{
    "id": 1,
    "chatId": 11,
    "labelId": 88,
    "userId": 60,
    "corpId": 11,
    "createdAt": "2022-06-15 17:00:52",
    "updatedAt": "2022-06-15 17:00:52",
    "deletedAt": "",
    "label": {
        "id": 88,
        "name": "陌拜",
        "userId": "",
        "corpId": "",
        "wxId": "et_TouBwAAa4IBrcJU3CkNPW0itIsJHg",
        "createdAt": "2022-06-13 19:26:24",
        "updatedAt": "2022-06-13 19:26:24",
        "deletedAt": ""
}],

当前代码

Model::query()->with('labels', function ($q){
    $q->with('label');
})

问题

目前使用laravel时经常会有一种情况
A商品存在多个标签,标签不仅对应商品也可能对应商品组,因此标签也是独立的表。
需要将A商品和标签关联起来需要一张关联表表示商品和标签的关系。

如:
使用with关联时如何隐藏中间表

如果with两层,目前laravel查询出的结果会多一层嵌套,咨询一下大家有没有好的方法。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

远程一对多关联 了解一下,举例说明:A表和B表是一对多的关系,而B表和C表也是一对多的关系。那么A表和C表就可以以B表为中间表进行远程关联

2周前 评论
讨论数量: 4

不过度依赖框架,自己定义数据结构

2周前 评论

模型关联本身可以有远程关联啊,查询结果直接就是目标层级

hasManyThrough

2周前 评论
Error_404 (楼主) 2周前

远程一对多关联 了解一下,举例说明:A表和B表是一对多的关系,而B表和C表也是一对多的关系。那么A表和C表就可以以B表为中间表进行远程关联

2周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!