我正在使用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;
我得到的结果如下:
{
"table1": {
"id": "132",
"title": "Awesome",
},
"table2": {
"image": "image_25398457.jpg"
},
"table3": {
"maincategory": "3"
},
"table4": {
"isfavorite": "1"
}
}
但我不想显示表格的名称,我更愿意以下列方式获得结果:
{
"id": "132",
"title": "Awesome",
"image": "image_25398457.jpg"
"maincategory": "3"
"isfavorite": "1"
}
我怎么能做到这一点?
谢谢!
答案 0 :(得分:1)
从我所看到的,结果按表名分组。
最简单的选择是:
$merged = call_user_func_array('array_merge', $result);
另一种选择是:
$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;
这就是为什么你会有这样的原因:
{
"final_table" : {
"id": "132",
"title": "Awesome",
"image": "image_25398457.jpg"
"maincategory": "3"
"isfavorite": "1"
}
}