我正在尝试将包添加到类别数组中,只有在第一个类别中它才能像我想要的那样工作,但在第二个和第三个类别中它不再具有数组格式。(见下面的例子)
我这样做是因为商店有类别和服务器,但一个包可以在多个服务器中,并且该类别连接到商店。而且我只想在服务器中至少有一个包时显示该类别
[
{
"id": 7,
"name": "Category1",
"packages": [
{
"id": 3,
"name": "Package1",
"minecraft_item": "3",
"price": "4.43",
"category_id": 7,
"position": 0,
"created_at": null,
"updated_at": "2020-12-14T08:49:59.000000Z"
}
]
},
{
"id": 8,
"name": "Category2",
"packages": {
"1": {
"id": 4,
"name": "Package2",
"minecraft_item": "3",
"price": "4.43",
"category_id": 8,
"position": 0,
"created_at": null,
"updated_at": "2020-12-14T08:49:59.000000Z"
}
}
},
{
"id": 9,
"name": "Category3",
"packages": {
"2": {
"id": 5,
"name": "Package3",
"minecraft_item": "WOOD",
"price": "12",
"category_id": 9,
"position": 0,
"created_at": null,
"updated_at": "2020-12-14T08:49:59.000000Z"
}
}
}
]
代码:
$categories = Category::where('store_id', $server->store->id)->get();
$array = [];
foreach ($categories as $key => $category) {
$packages = Server::find($server->id)->packages->where('category_id', $category->id);
if ($packages->first()) {
$array[$key]['id'] = $category->id;
$array[$key]['name'] = $category->name;
$array[$key]['packages'] = $packages;
}
}
有谁知道我做错了什么?