Доктрина 2: псевдоним группы по полю (Ошибка: «…» не указывает на класс.)
Я получил этот запрос Доктрины:
select upper(substring(e.name, 1, 1)) first_letter
from Application\Models\Exercise e
group by first_letter
order by first_letter asc
Но он выдает исключение с сообщением:
Error: 'first_letter' does not point to a Class.
Если я пропущуgroup by
иorder by
, оно работает.
Должен ли я использовать собственный запрос в этом случае или выполнять сортировку и группировку в моем клиентском коде (возможно, это не очень хорошая идея, в зависимости от объема данных в БД ...) или возможно ли заставить этот запрос работать ?
Спасибо!
РЕДАКТИРОВАТЬ:
Это мой текущий подход, не очень хороший, но работает на данный момент, так как в БД не так много данных:
$tmpResult = $this->getEntityManager()->createQuery('
select upper(substring(e.name, 1, 1)) first_letter
from Application\Models\Exercise e
')->getResult();
$groupedAndSortedResult = array();
foreach($tmpResult as $row) {
$groupedAndSortedResult[$row['first_letter']] = $row['first_letter'];
}
sort($groupedAndSortedResult);
return array_values($groupedAndSortedResult);