Doctrine2 не уважает группу со смешанным выбором объектов / агрегатов - PullRequest
1 голос
/ 10 июня 2019

Учитывая существующие данные и группировку задач и дат, я ожидаю, что следующий DQL даст 1448 результатов:

<?php
$query = $this->getEntityManager()
    ->createQuery(
        <<<DQL
SELECT t, SUM(a.hours) hours, a.date
JOIN AppBundle\Entity\Task t
JOIN AppBundle\Entity\Actual a WITH a.Task=t
GROUP BY t, a.date
ORDER BY t.taskCode, a.date
DQL
    );

$sql = $query->getSQL();
$results = $query->getResult();

Сгенерированный SQL действительно возвращает ожидаемый набор результатов. Однако $ results содержит только одну запись для каждой задачи (21). В каждом из них присутствует только последняя дата и соответствующая сумма часов.

Если я переключаю SELECT с "t" на "t.TaskId", он возвращает все 1448 записей, но затем я сталкиваюсь с несчастной задачей восстановления всех объектов Task по факту.

Я что-то упускаю из предложения GROUP BY или как получить результаты полезным способом?

...