Laravel 按多列分组

Sue*_*rsi 1 php sql database laravel

我使用 laravel 5.2,我想根据两列(配置和类型)的值对表进行分组。因此,基本上,如果表中的两行或多行具有相同的配置和类型,它们将被分组。我尝试过这样的查询,但它不起作用:

 $groups = Model::where('active', 1)->get()->groupBy('type_id', 'configuration_id');
Run Code Online (Sandbox Code Playgroud)

有什么建议么?

编辑:我认为我使用了错误的查询。我想要做的是获取这两列中具有相同值的行并将它们分组。显然,group by 用于聚合事物,例如,如果我想要一个总和或其他东西。

编辑2:实际上我在这里使用的groupby不是查询的一部分,它是laravel提供的用于集合的辅助函数,请参阅此链接有谁知道它是否按两个字段分组?

Sue*_*rsi 6

好吧,我已经弄清楚了。我使用的 groupBy 方法不是查询,而是一个按特定字段对集合进行分组的 laravel 函数。您可以在此处查看文档。所以解决方法是像这样进行两次分组。

$groups = Model::where('active', 1)->get()->groupBy('type_id');

foreach ($groups as $group) {
    $grouped[] =  $group->groupBy('configuration_id');
}
Run Code Online (Sandbox Code Playgroud)