Laravel 5.4: возвращать ответ json groupBy создал_at - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть этот контроллер, который группирует коллекцию по дате

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 это статический ключ

1 Ответ

0 голосов
/ 21 февраля 2019

Оберните ваши $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"
            }
        ]
    ]
}

Это что?Вы ищете?

...