1

我是 Laravel 的新手。我使用 laravel 作为 REST 端点,我使用 Eloquent: API Resources 将我的数据转换为 JSON。

我正在使用 Collection and Resource 来解析我的数据来自我的查询。所以下面是我的回复结构:

data:
    0
        id
        name
    1
        id
        name

现在我需要对数据进行一些分类,因此我要求数据结构采用以下格式

data:
    24H
        0
            id
            name
        1
            id
            name
    7D
        0
            id
            name
        1
            id
            name

我尝试了几种方法来实现这一点,我尝试测试的静态方法是更改​​ ResourceCollection的 toArray 方法并为我们获得的数据附加密钥 24H。

但我知道这是不正确和通用的方式。

我想知道如何以通用和可扩展的方式实现上述响应格式。

非常感谢您的帮助。

谢谢。

4

1 回答 1

1

Laravel Collections 有一个 groupBy 方法可以帮助你,确保你想用作键的列也被选中。所以如果你有

data: 
    0: 
        id: 1
        name: Bob
        category: 24H

    1: 
        id: 2
        name: Bill
        category: 7D

然后$data->groupBy('category')会返回以下

data: 
    24H:
        0: 
            id: 1
            name: Bob
            category: 24H

    7D: 
        0:
            id: 2
            name: Bill
            category: 7D
于 2020-01-31T19:28:09.633 回答