多组由拉拉维尔收藏
我试图在Laravel 5中按两个子句对集合进行分组,但它只按第一个子句对其进行分组。有人可以帮我吗?这是我的代码。
$query = Activity::all()->groupBy('performed_at_year_month', 'performer_id')->toJson();
我试图在Laravel 5中按两个子句对集合进行分组,但它只按第一个子句对其进行分组。有人可以帮我吗?这是我的代码。
$query = Activity::all()->groupBy('performed_at_year_month', 'performer_id')->toJson();
我认为 https://stackoverflow.com/a/30469061/221745 的解决方案可以改进。关键是要记住,分组集合是集合的集合。因此,以下方法将起作用:
<?php
$recs = new \Illuminate\Database\Eloquent\Collection($query);
$grouped = $recs->groupBy('performed_at_year_month')->transform(function($item, $k) {
return $item->groupBy('performer_id');
});
包含最终结果的位置$grouped
Laravel 现在(从 5.5.29 开始)支持多级嵌套分组,根据 https://christoph-rumpel.com/2018/1/groupby-multiple-levels-in-laravel
$query = Activity::all()->groupBy(['performed_at_year_month', 'performer_id'])->toJson();