Ped*_*dro 2 php arrays grouping laravel
我有一个集合“事件”,它具有“站点”和“检查”的关系。
我想要做的是将“检查日期”的所有事件分组,然后在该组下按“站点”分组事件。
IE
一旦我有了这个分组,我想输出一个数组,如:
[
'title => 'Site Name: Event Name, Event Name, Event Name',
'date' => 'YYYY-MM-DD'
]
Run Code Online (Sandbox Code Playgroud)
这远远超出了我的智力,所以任何帮助将不胜感激!顺便说一句,我正在使用 Postgresql,所以我似乎只能在 ID 上使用 groupBy?
我尝试了一些使用 groupBy() 和 map() 的东西,这似乎让我有些地方但不知道如何继续:
$events = $events->groupBy('inspection.id')->map(function($item){
return $item->groupBy('site.id');
});
Run Code Online (Sandbox Code Playgroud)
假设结构(简化为数组):
$events = [
'name' => 'event name',
'inspection' => ['date' => ' ... '] // relation
'site' => ['name' => ' ... '] // relation
Run Code Online (Sandbox Code Playgroud)
这就是你所需要的:
$collection
->groupBy('inspection.date')
->map(function ($events, $date) {
return $events
->groupBy('site.name')
->map(function ($events, $site) use ($date) {
return [
'title' => $site_name.': '.$events->implode('name', ', '),
'date' => $date
];
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7860 次 |
| 最近记录: |