首页 > 解决方案 > 在 php/laravel 中以 json 格式设置名称

问题描述

如何在 laravel 中将名称设置为 JSON 对象,因为我想在 Vue js 中为图片库中的插件显示。每当我传递数据时,我都会收到此错误:Expected Object, got Array.

{
  "normal_size": [
    {
      "id": 1,
      "image": "MICMIMC30651-6.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-6.jpg"
    },
    {
      "id": 2,
      "image": "MICMIMC30651-61.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-61.jpg"
    },
    {
      "id": 3,
      "image": "MICMIMC30651-62.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-62.jpg"
    },
    {
      "id": 4,
      "image": "MICMIMC30651-63.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-63.jpg"
    }
  ]

}
我想要的输出:
image : {
  "normal_size": [
    {
      "id": 1,
      "image": "MICMIMC30651-6.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-6.jpg"
    },
    {
      "id": 2,
      "image": "MICMIMC30651-61.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-61.jpg"
    },
    {
      "id": 3,
      "image": "MICMIMC30651-62.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-62.jpg"
    },
    {
      "id": 4,
      "image": "MICMIMC30651-63.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-63.jpg"
    }
  ]

}

`

Laravel 产品控制器代码将数据传递给 vue 组件

 $normal_size = DB::table('products_images')->where([['products_id', '=', $product]])
        ->select('products_images.id','products_images.image')
        ->get()->ToArray();

foreach($normal_size as $value)
        {
            $value->url = 'http://localhost:8000/images/product/preview/'.$value->image;
        }
$output = (array('normal_size' => $normal_size));
return response()->json(($output));

标签: phparraysjson

解决方案


解码您的 JSON 以转换数组。格式化所需的数组结构并将数组编码为 JSON。

$data = '{
  "normal_size": [
    {
      "id": 1,
      "image": "MICMIMC30651-6.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-6.jpg"
    },
    {
      "id": 2,
      "image": "MICMIMC30651-61.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-61.jpg"
    },
    {
      "id": 3,
      "image": "MICMIMC30651-62.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-62.jpg"
    },
    {
      "id": 4,
      "image": "MICMIMC30651-63.jpg",
      "url": "http://localhost:8000/images/product/preview/MICMIMC30651-63.jpg"
    }
  ]
}';

$output = json_encode(['image' => json_decode($data, true)]);

echo $output;

工作演示


推荐阅读