2015-02-11 5 views
5

Sto riscontrando un problema con una query DQL per recuperare utenti e ruoli da un database MySql. Sto usando Zend Framework 2 e Doctrine 2.La query DQL genera un errore Expected Literal, ottenuto da 'BY'

La query è la seguente.

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); 
} 

La query sopra produce l'errore, [Errore di sintassi] linea 0, col 91: Errore: Previsto letterale, ottenuto 'con'

Il generato DQL è

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

qualcuno si prega di individuare ciò che è sbagliato in questa query, molte grazie.

risposta

7

L'ho capito.

il problema era con la linea

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

Questo avrebbe dovuto essere

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

UserRole è definito nel mio Entity \ class utenti.

Problemi correlati