我正在使用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","image": "image_25398457.jpg" "maincategory": "3" "isfavorite": "1" }
我怎么能得到这个?
谢谢 !
解决方法
从我所看到的,结果按表名分组.
最简单的选择是:
$merged = call_user_func_array('array_merge',$result);
另一种选择是:
$db = $this->getDataSource(); $result = $db->fetchAll( 'SELECT * FROM ( SELECT table1.id,(table4.user_id = "71") AS isfavorite FROM table1 INNER JOIN ... LEFT JOIN ... LEFT JOIN ... where ... ' ) as final_table ); return $result;
这就是为什么你只有这样的东西:
{ "final_table" : { "id": "132","image": "image_25398457.jpg" "maincategory": "3" "isfavorite": "1" } }