Я возвращаю некоторые данные из БД с помощью Eloquent и помещаю их в объект массивов.Мой объект ответа браузеру отображается в следующем формате:
// response()->json($response, 200);
[{
"id": 1,
"name": "car",
"make": ["bmw", "ford"]
"order": 1
},
{
"id": 2,
"name": "bike",
"make": ["aprilia"]
"order": 2
},
{
"id": 3,
"name": "boat",
"make": []
"order": 3
},
(...)
]
Прежде чем вернуть его, я хотел отфильтровать его на стороне сервера.Поэтому я возвращаю только те объекты, которые содержат значение в массиве "make"
.
Итак, я запускаю этот цикл:
foreach ($response as $key => $transport) {
if (count($response[$key]['make']) == 0) {
unset($response[$key]);
};
}
Что делает php, это конвертирует массив в объект, а такжедобавляет ключи к каждому внутреннему объекту.Так что теперь мой $response
выглядит так:
// response()->json($response, 200);
{ // notice here it has changed from array to object
"0": { // notice here it has added key "0"
"id": 1,
"name": "car",
"make": ["bmw", "ford"]
"order": 1
},
"1" : { // notice here it has added key "1"
"id": 2,
"name": "bike",
"make": ["aprilia"]
"order": 2
},
(...)
}
Прежде всего - почему?И второй вопрос - как предотвратить / вернуться к ответу массива объектов?