Doctrine 2: Alias nach Feld gruppieren (Fehler: '…' zeigt nicht auf eine Klasse.)
Ich habe diese Doctrine-Abfrage erhalten:
select upper(substring(e.name, 1, 1)) first_letter
from Application\Models\Exercise e
group by first_letter
order by first_letter asc
Aber es wird eine Ausnahme mit der Meldung ausgelöst:
Error: 'first_letter' does not point to a Class.
Wenn ich das @ weglasgroup by
und dieorder by
, Es klappt
Muss ich in diesem Fall eine systemeigene Abfrage verwenden oder muss ich die Sortierung und Gruppierung in meinem Client-Code durchführen (wahrscheinlich keine so gute Idee, abhängig von der Datenmenge in der Datenbank ...) oder ist es möglich, diese Abfrage zu erhalten Arbeiten
Vielen Dank
BEARBEITEN
Dies ist mein aktueller Ansatz, nicht so schön, funktioniert aber im Moment, da nicht viele Daten in der Datenbank sind:
$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);