gpt4 book ai didi

php - 复杂的 Laravel 5 按集合分组

转载 作者:行者123 更新时间:2023-12-05 02:20:29 24 4
gpt4 key购买 nike

我有一个集合“事件”,它具有“站点”和“检查”的关系。

我想做的是在“检查日期”对所有事件进行分组,然后在该组下按“站点”对事件进行分组。

I.E

  • 检查日期 (YYYY-MM-DD)
    • 站点 1
      • 事件名称
      • 事件名称
    • 站点 2
      • 事件名称
  • 检查日期 (YYYY-MM-DD)
    • 站点 1
      • 事件名称

一旦我有了这个分组,我想输出一个像这样的数组:

[
'title => 'Site Name: Event Name, Event Name, Event Name',
'date' => 'YYYY-MM-DD'
]

这远远超出了我的智慧,因此我们将不胜感激!顺便说一句,我正在使用 Postgresql,所以我似乎只能在 id 上使用 groupBy?

我已经尝试使用 groupBy() 和 map() 做一些事情,这似乎有点让我到达某个地方但不确定如何继续:

$events = $events->groupBy('inspection.id')->map(function($item){
return $item->groupBy('site.id');
});

最佳答案

假设结构(简化为数组):

$events = [
'name' => 'event name',
'inspection' => ['date' => ' ... '] // relation
'site' => ['name' => ' ... '] // relation

这是你需要的:

$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
];
});
});

关于php - 复杂的 Laravel 5 按集合分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39156054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com