php - 如何将 PHP DB 数据转换为具有不同列标题的 JSON
问题描述
如何将从控制器发送到我的视图的 php 数据转换为定义了新标题的 JSON 对象,并能够将其包装在脚本 html 标记中。我希望数据具有与我在下面的视图中设置的相同的标题,尽管数据库标题不同。
控制器,
$deals = "SELECT deals.id, categories.category_name, deals.title, deals.price, deals.imagepath FROM deals INNER JOIN categories on deals.category_fk = categories.id INNER JOIN masters on masters.id = deals.masterid_fk";
$deals = DB::select($deals);
return view('pages.home',['deals'=> $deals]);
}
}
在我看来,我有:
@foreach ($deals as $deal)
"id": {{$deal->id}},
"category": {{$deal->category_name}},
"sub_category": {{$deal->master_name}},
"rating": "5",
"title": {{$deal->title}},
"price": {{$deal->price}},
"image": "{{$deal->imagepath}}"
@endforeach
我希望我的最终产品看起来像这样 [
{
"id": 225,
"category": "Home",
"sub_category": "Dusting",
"rating": "3",
"title": "Complete dusting of all furniture",
"price": "$8,000",
"image": "/img/apartment-architecture-carpet-584399.jpg"
}
]
</script>
解决方案
循环遍历数据并生成数组并转换为 JSON:
$for_json = array();
$counter = 0;
foreach ($deals as $deal){
$for_json[$counter]['id'] = $deal->id;
$for_json[$counter]['category'] = $deal->category_name;
$for_json[$counter]['sub_category'] = $deal->master_name;
$for_json[$counter]['rating'] = 5;
$for_json[$counter]['title'] = $deal->title;
$for_json[$counter]['price'] = $deal->price;
$for_json[$counter]['image'] = $deal->imagepath
$counter++;
}
$deals = json_encode($for_json);
这是给你的控制器的。
推荐阅读
- c# - 有没有办法将 GroupBy 分成一组?
- java - Google Chrome 应用更新 - 不要播放 html webview 视频
- c++ - 如何修复我的代码过早退出?
- javascript - 使用 Highcharts 绘制数据时出现问题
- javascript - 使用 json 的 Bootstrap 4 导航栏
- python - 为什么每当我“播放”音乐时,python 都会播放奇怪的声音?
- c++ - 如何将 qprocess 带到最前面?
- mysql - MySQLdb._exceptions.ProgrammingError: (1064, "你的 SQL 语法有错误)
- java - 按下回车后,JLine 自动完成不显示并运行 onComplete
- r - 为什么 Rstudio 找不到 libRblas.so 和 libRlapack.so,或者应该如何在 Ubuntu 18 中安装它们?