Bla*_*hop 5 php mysql sql json cakephp-2.3
我正在使用 cakephp 并且我有一个模型
$db = $this->getDataSource();
$result = $db->fetchAll(
'SELECT table1.id,
table1.title,
table1.buy_url,
table2.image_file as image,
table3.category_id as maincategory,
(table4.user_id = "71") AS isfavorite
FROM table1
INNER JOIN ...
LEFT JOIN ...
LEFT JOIN ...
where ...);
return $result;
Run Code Online (Sandbox Code Playgroud)
我得到这样的结果:
{
"table1": {
"id": "132",
"title": "Awesome",
},
"table2": {
"image": "image_25398457.jpg"
},
"table3": {
"maincategory": "3"
},
"table4": {
"isfavorite": "1"
}
}
Run Code Online (Sandbox Code Playgroud)
但我不想显示表的名称,我更愿意通过以下方式获得结果:
{
"id": "132",
"title": "Awesome",
"image": "image_25398457.jpg"
"maincategory": "3"
"isfavorite": "1"
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
谢谢 !
据我所见,结果按表名称分组。
最简单的选择是:
$merged = call_user_func_array('array_merge', $result);
Run Code Online (Sandbox Code Playgroud)
另一种选择是:
$db = $this->getDataSource();
$result = $db->fetchAll(
'SELECT * FROM (
SELECT table1.id,
table1.title,
table1.buy_url,
table2.image_file as image,
table3.category_id as maincategory,
(table4.user_id = "71") AS isfavorite
FROM table1
INNER JOIN ...
LEFT JOIN ...
LEFT JOIN ...
where ... '
) as final_table
);
return $result;
Run Code Online (Sandbox Code Playgroud)
这就是为什么你只会有类似的东西:
{
"final_table" : {
"id": "132",
"title": "Awesome",
"image": "image_25398457.jpg"
"maincategory": "3"
"isfavorite": "1"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
535 次 |
| 最近记录: |