2015-02-11 32 views
5

我有一個DQL查詢從MySql數據庫檢索用戶和角色的問題。我正在使用Zend Framework 2和Doctrine 2.DQL查詢產生錯誤預期的文字,得到'BY'

查詢如下。

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

上述查詢產生錯誤,[語法錯誤] 0行,列91:錯誤:預期文字,得到了 'BY'

生成DQL是

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

有人請發現這個查詢有什麼問題,非常感謝。

回答

7

我已經想通了。

的問題是與線

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

這本來

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

UserRole的是我的實體\ Users類中定義。

相關問題