Doctrina 2: grupo por alias de campo (Error: '...' no apunta a una Clase).
Tengo esta consulta de Doctrina:
select upper(substring(e.name, 1, 1)) first_letter
from Application\Models\Exercise e
group by first_letter
order by first_letter asc
Pero arroja una excepción con el mensaje:
Error: 'first_letter' does not point to a Class.
Si dejo fuera elgroup by
y elorder by
, funciona.
¿Tengo que usar una consulta nativa en este caso o ordenar y agrupar en mi código de cliente (probablemente no sea una buena idea dependiendo de la cantidad de datos en la base de datos ...) o es posible que esta consulta funcione ?
¡Gracias!
EDITAR:
Este es mi enfoque actual, no tan agradable, pero funciona por el momento, ya que no hay muchos datos en la base de datos:
$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);