2015-02-11 61 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类中定义。

相关问题