Laravel 5.4:返回响应json groupBy created_at

问题描述 投票:0回答:1

我有这个控制器按日期对Collection进行分组

public function index() {
        $poLists = ( new PurchaseOrder() )
            ->where( 'needed_quantity', '>', 0 )
            ->where( 'supplier_id', $this->guard()->user()->id )
            ->get()->groupBy( function ( $item ) {
                return [ $item->created_at->format( 'Y-m-d HH:mm:ss' ) ];
            } );

        return response()->json( $poLists, 200 );
    }

工作正常,这是输出

{
    "2019-02-18 1212:0202:3939": [
        {
            "id": 2,
            "created_at": "2019-02-18 12:16:39",
            "updated_at": "2019-02-18 12:16:39"
        }
    ],
    "2019-02-18 1515:0202:0202": [
        {
            "id": 4,
            "created_at": "2019-02-18 15:21:02",
            "updated_at": "2019-02-18 15:21:02"
        },
        {
            "id": 5,
            "created_at": "2019-02-18 15:21:02",
            "updated_at": "2019-02-18 15:21:02"
        }
    ],

有没有办法为每个组添加静态密钥

{
    date: "2019-02-18 1212:0202:3939" [
        {
            "id": 2,
            "created_at": "2019-02-18 12:16:39",
            "updated_at": "2019-02-18 12:16:39"
        }
    ],
    date: "2019-02-18 1515:0202:0202": [
        {
            "id": 3,
            "barcode": 33254,
            "status": 0,
            "created_at": "2019-02-18 15:21:02",
            "updated_at": "2019-02-18 15:21:02"
        },
        {
            "id": 5,
            "created_at": "2019-02-18 15:21:02",
            "updated_at": "2019-02-18 15:21:02"
        }
    ],

这是date是静态键

php arrays json laravel-5.4
1个回答
0
投票

用包含所需键的数组包装$poList结果数据:

$results = [
    'date' => $poLists
];
return response()->json($results, 200);

现在,在$results['date']中按日期分组所有数据:

{
    "date": [
        "2019-02-18 1212:0202:3939" [
            {
               "id": 2,
                "created_at": "2019-02-18 12:16:39",
                "updated_at": "2019-02-18 12:16:39"
            }
        ],
        "2019-02-18 1515:0202:0202": [
            {
                "id": 3,
                "barcode": 33254,
                "status": 0,
                "created_at": "2019-02-18 15:21:02",
                "updated_at": "2019-02-18 15:21:02"
            },
            {
                "id": 5,
                "created_at": "2019-02-18 15:21:02",
                "updated_at": "2019-02-18 15:21:02"
            }
        ]
    ]
}

这是你想要的?

© www.soinside.com 2019 - 2024. All rights reserved.