我正在使用 Eloquent 从 DB 返回一些数据并放入数组对象中。我对浏览器的响应对象以这种格式显示:
// 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
},
(...)
}
首先——为什么?第二个问题 - 如何防止/返回对象数组响应?