У меня есть сложный запрос в моем проекте, который я выполняю в нативном SQL.
$r = $this->User->Project->query("
SELECT
Project.id,
Project.name,
Customer.name,
(SELECT SUM(hours)
FROM entries
WHERE project_id = Project.id
AND createdby = $id
AND deleted = 0
AND YEAR(entry_date) = YEAR(NOW())
AND DAYOFYEAR(entry_date) = DAYOFYEAR(NOW())) as TodayHours,
(SELECT SUM(hours)
FROM entries
WHERE project_id = Project.id
AND createdby = $id
AND deleted = 0
AND YEAR(entry_date) = YEAR(NOW())
AND WEEKOFYEAR(entry_date) = WEEKOFYEAR(NOW())) as WeekHours,
(SELECT SUM(hours)
FROM entries
WHERE project_id = Project.id
AND deleted = 0) as SpentHours,
Project.budget_hours as TotalHours
FROM projects as Project
INNER JOIN users_projects UserProject on UserProject.project_id = Project.id
AND UserProject.user_id = $id
INNER JOIN customers Customer on Customer.id = Project.customer_id
WHERE Project.deleted = 0
AND Project.archived = 0
");
Когда результаты возвращаются, почти все выглядит идеально.Единственная проблема в том, что CakePHP выбрасывает мои SUM
столбцы в их собственную группу [0]
.Я хотел бы объединить их с Project
, если это возможно.Есть ли способ, которым я могу псевдоним этих полей, чтобы это произошло?
Array
(
[0] => Array
(
[Project] => Array
(
[id] => 7
[name] => Some Project Name
[TotalHours] => 67.00
)
[Customer] => Array
(
[name] => Some Customer Name
)
[0] => Array
(
[TodayHours] => 2.25
[WeekHours] => 27.25
[SpentHours] => 27.25
)
)
)