【发布时间】:2021-07-16 21:26:47
【问题描述】:
我有一个 Laravel 函数,它从两个或三个以上的单独集合(不同的 BD 查询)返回这个结果合并集合:
Illuminate\Support\Collection {#3361
all: [
{#3359
+"id": 3,
+"name": "Jose Achecar",
+"role": 1,
},
{#3344
+"id": 1,
+"name": "Oswaldo Graterol",
+"role": 1,
},
{#3384
+"id": 4,
+"name": "Assaily",
+"role": 2,
},
{#3372
+"id": 3,
+"name": "Jose Achecar",
+"role": 2,
},
{#3349
+"id": 5,
+"name": "Alejandro",
+"role": 1,
},
{#3382
+"id": 2,
+"name": "Marcos Mendozas",
+"role": 2,
},
],
}
如您所见,有一个元素(带有id 3 的那个)有两个角色并显示了两次
有一个方法或助手可以用来对集合进行分组并得到类似这样的东西:
Illuminate\Support\Collection {#3361
all: [
{#3359
+"id": 3,
+"name": "Jose Achecar",
+"role": [1,2],
},
{#3344
+"id": 1,
+"name": "Oswaldo Graterol",
+"role": [1],
},
{#3384
+"id": 4,
+"name": "Assaily",
+"role": [2],
},
{#3349
+"id": 5,
+"name": "Alejandro",
+"role": [1],
},
{#3382
+"id": 2,
+"name": "Marcos Mendozas",
+"role": [2],
},
],
}
【问题讨论】:
-
你能发布你的代码吗?您是否有一个包含用户详细信息和角色的平面表,或者两个不同的表,
users和roles,具有 many-to-many 关系? -
您好,谢谢,我有 3 个表:用户、角色、组。一个用户可以在一个组中拥有多个角色。这篇文章中的集合就是一个例子,确实集合有更多的字段,因为我认为我在DB查询时不能使用group_concat这样的函数。
-
顺便说一下,我没有定义这些表之间的关系。
-
我建议你看看关系,它有助于简化查询。你能发布你的 laravel 雄辩的查询吗? (是的,很高兴您将代码减少到最少,这有助于理解您的问题:-))
标签: php laravel laravel-7 laravel-collection