2015-02-11 9 views
5

Ich habe ein Problem mit einer DQL-Abfrage zum Abrufen von Benutzern und Rollen aus einer MySql-Datenbank. Ich verwende Zend Framework 2 und Doctrine 2.DQL-Abfrage erzeugt Fehler Erwartete Literal, bekam 'BY'

Die Abfrage lautet wie folgt.

public function getUsers() 
{ 
    $builder = $this->getEntityManager()->createQueryBuilder(); 
    $builder->select('u, r') 
      ->from('Application\Entity\Users', 'u') 
      ->leftJoin('Application\Entity\UserRoles', 'r') 
      ->orderBy("u.emailAddress", "ASC"); 

    InfoLogger::vardump($builder->getDQL()); 

    return $builder->getQuery()->getResult(Query::HYDRATE_OBJECT); 
} 

Die obige Abfrage erzeugt den Fehler, [Syntax Error] Zeile 0, Spalte 91: Fehler: Erwartete Literal erwartet, 'BY'

die erzeugte DQL ist

SELECT u, r FROM Application\Entity\Users u LEFT JOIN Application\Entity\UserRoles r ORDER BY u.emailAddress ASC 

Kann jemand Bitte stellen Sie fest, was mit dieser Anfrage falsch ist, vielen Dank.

Antwort

7

Ich habe es herausgefunden.

Das Problem war mit der Linie

->leftJoin('Application\Entity\UserRoles', 'r') 

Diese

sein sollte
->leftJoin('u.userRole', 'r') 

Userrole in meinem Entity \ Users Klasse definiert ist.

Verwandte Themen