Laravel 查询生成器分组到嵌套数组中

Laravel query builder group into nested arrays

我在我的项目中使用 Laravel 和查询生成器。

我有以下 table:

Table: worker_tasks
+--------+-----------+------------+---------------------+
| id     | worker_id | task_id    | started_at          |
+--------+-----------+------------+---------------------+
| 227350 |     50765 |       2399 | 2021-12-02 12:24:38 |
| 227351 |     50765 |       1377 | 2021-12-12 09:34:22 |
| 227352 |     84245 |       2294 | 2021-12-07 10:37:11 |
+--------+-----------+------------+---------------------+

我希望将数据检索到嵌套数组的数组中,每个嵌套数组的键是 worker_id
在这种情况下,预期结果将是:

[
    50765 => [
        {
          "task_id": 2399,
          "started_at": "2021-12-02 12:24:38",
        },
        {
          "task_id": 1377,
          "started_at": "2021-12-12 09:34:22",
        },
    ],
    84245 => [
        {
          "task_id": 2294,
          "started_at": "2021-12-07 10:37:11",
        },
    ],
]

我尝试使用 keyBy 收集方法,但每个键只需要一个元素,如文档中所写:

If multiple items have the same key, only the last one will appear in the new collection

我想知道是否有直接的方法(使用一些内置的 Laravel 方法)。

使用GroupBy方法代替keyBy