$modelQuery->get()の戻り値はCollection
Eloquentを使用して取得した戻り値はCollectionクラスなので、
用意されているgroupBy()メソッドを使用すればOK
Collection::groupBy
本家サイトはコチラ
これを使うと指定したキーでコレクションのアイテムをグループにまとめることができる
使ってみる
- productsテーブル
 
| id | category | name | 
| 1 | 食品 | おにぎり | 
| 2 | 飲料 | ハイボール | 
| 3 | 食品 | ラーメン | 
| 4 | 飲料 | ビール | 
$products = Product::query()->get();
dd($products->groupBy('category')->toArray());デバッグするとちゃんとグループ分けがされてる
[
  '食品' => [
    ['id' => 1, 'category' => '食品', 'name' => 'おにぎり'],
    ['id' => 3, 'category' => '食品', 'name' => 'ラーメン'],
  ],
  '飲料' => [
    ['id' => 2, 'category' => '飲料', 'name' => 'ハイボール'],
    ['id' => 4, 'category' => '飲料', 'name' => 'ビール'],
  ],
]














Laravelで、DBから取得したデータを
特定のkeyを指定してグループ分けしたい時