在laravel中分组数据之后,如何分别显示每个分组中的所有行

时间:2019-01-12 11:04:39

标签: laravel

我在laravel中使用 groupBy 进行分组,但是在分组之后,我想显示单独的数组中位于同一组中的所有行。

$menus = Order_menu_mapping::whereIn('order_id', $order_ids)
    ->groupBy('menu_id')
    ->get();

这里$menus仅组成仅保留一行的组。但我想显示每个组中的所有行。

2 个答案:

答案 0 :(得分:2)

在您的示例中,您要向查询中添加groupBy,这与在集合上使用groupBy()不同。

get()方法将执行查询并返回一个集合,因此您只需要在其后放置groupBy

$menus = Order_menu_mapping::whereIn('order_id', $order_ids)
    ->get()
    ->groupBy('menu_id');

答案 1 :(得分:0)

您需要使用mapToGroups。该groupBy可以处理数据集