php - 在 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));
解决方案
解码您的 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;
工作演示。
推荐阅读
- java - 当我使用 computeIfAbsent 计算斐波那契数时,hashmap size() 返回不正确的值
- node.js - React,req.body中发送到后端的数据,不能使用req.body中的字段
- neo4j - 在 Neo4J 中检索某些节点相互关系的 Cypher 查询是什么?
- android - Android Emulator 使用系留 iPhone 时无法上网
- android - 无障碍服务标志RequestTouchExplorationMode
- math - 如果非确定性图灵机在 f(n) 空间中运行,那么为什么它在 2^O(f(n)) 时间中运行?
- python - 尝试使用图形创建对角线图案
- python - 不明白为什么这段时间没有停止
- dynamic - 如何在 SpringRouteBuilder 中路由到 Camelhttpquery 中包含的动态 uri?
- docker - docker compose 总是构建 Dockerfile,因此它不依赖于 db