PHP中的Foreach对象数组

PHP中的Foreach对象数组,php,arrays,json,laravel,object,Php,Arrays,Json,Laravel,Object,我试图将两个表中的数据组合起来,以获取并转换为JSON数据。我希望数据格式类似于: [ { "designs" : [ { "id": 6, "product_id": 2, "sku": "2648", "size

我试图将两个表中的数据组合起来,以获取并转换为JSON数据。我希望数据格式类似于:

[
   {
    "designs" : [
                {
                "id": 6,
                "product_id": 2,
                "sku": "2648",
                "size": "5*4",
                "materialType": "Aluminum",
                },
                {
                  "id": 7,
                  "product_id": 2,
                  "sku": "1234",
                  "size": "10*4",
                  "materialType": "Wood",
                }
            ],
    "id": 2,
    "category_id": 5,
    "product_name": "Restricted Area Sign",
    "price": 1000,
    "category_name": "Medical Safety"
  }
]
在Laravel中使用以下代码:

    $products = Product::get();
    foreach($products as $key => $val) {
        $category_name = Category::where(['id' => $val->category_id])->first();
        $products[$key]->category_name = $category_name->name;
        $attributes=ProductsAttribute::where(['product_id' => $val->id])->get();            
        foreach($attributes as $attr => $attrValue){
             $products[$key][$attr] = $attrValue;                            
        }
    }

    $products = json_decode($products);
    return $products;
}
但我得到的却是这样的回应:

[
  {
    "0": {
      "id": 6,
      "product_id": 2,
      "sku": "2648",
      "size": "5*4",
      "materialType": "Aluminum",
    },
    "1": {
      "id": 7,
      "product_id": 2,
      "sku": "1234",
      "size": "10*4",
      "materialType": "Wood",
    },
    "id": 2,
    "category_id": 5,
    "product_name": "Restricted Area Sign",
    "price": 1000,
    "category_name": "Medical Safety"
  }]
是否仍要使用键推送数组,而不是使用不同对象的键? 谢谢。

我做到了:

public function viewProductsApi(Request $request){
    $products = Product::get();
    foreach($products as $key => $val) {
        $category_name = Category::where(['id' => $val->category_id])->first();
        $products[$key]->category_name = $category_name->name;
        $attributes=ProductsAttribute::where(['product_id' => $val->id])->get();
        $products[$key]->desings = $attributes;
    }

    $products = json_decode($products);
    return $products; 
}