Cakephp дБ результат запроса без имен таблиц, просто результат, как в MySQL?
Я использую 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"
}
Как я могу достичь этого?
Спасибо!
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"
}
}