![](/img/trans.png)
[英]How to create a parent > child collection with laravel based on an eloquent result?
[英]Laravel eloquent, create collection based on Column value
我有一個如下所示的示例表:
| id | is_new | cate |
| 0 | 1 | [5] |
| 1 | 1 | [5] |
| 2 | 1 | [7] |
| 3 | 1 | [6] |
在我調用以下函數之后
$product = Products::where('is_new', 1)->get();
該集合具有以下數據結構
Collection {#1284 ▼
#items: array:4 [▼
0 => Products {#1285 ▶}
1 => Products {#1286 ▶}
2 => Products {#1287 ▶}
3 => Products {#1288 ▶}
]
}
我還可以通過以下方式返回類別 ID 列表:
$category = Category::where('type', 2)->pluck('id')->all();
我想知道有沒有什么好方法可以基於 cate 實現以下結構(或類似結構)。 我可以使用蠻力方式通過循環遍歷 $category 然后手動添加到新集合來創建它,我認為有更好的方法來做到這一點。
Collection {#1284 ▼
#items: array:3 [▼
5 => array:2 [▼
0 => Products {#1285 ▶}
1 => Products {#1286 ▶}
]
6 => Products {#1287 ▶} or 6 => array:1 [ 0 => Products {#1287 ▶} ]
7 => Products {#1288 ▶}
]
}
基於答案的解決方案更新:
$product->groupBy(function($item) {
return $item['cate'][0]; //because the entry is a list
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.