我有一个这样的集合,当我执行groupBy('name')
时,它会像这样返回
我的问题是执行groupBy('name')
时如何合并“ id_area”键?
预期的结果更像这样
"name" => "A"
"id_area" => [3, 1]
我雄辩的代码是
$x = Kegiatan::orderBy('name')->groupBy('name')->get();
$y = $x->map(function ($group) {
return ["name" => $group->name, "id_area" => $group->id_area];
});
dd($y);
答案 0 :(得分:0)
不要使用查询构建器的groupBy()
方法,而只是获取数据,然后使用Illuminate\Support\Collection
类的groupBy()
方法
$collection = Kegiatan::orderBy('name')->get();
$grouped = $collection->groupBy('name');
$grouped->toArray();
在查询生成器上使用groupBy()
可以按数据库查询对记录进行分组,而使用集合的groupBy()
可以在通过查询获取数据后对记录进行分组