DQL 查询产生错误 Expected Literal, got 'BY'
DQL query produces error Expected Literal, got 'BY'
我在使用 DQL 查询从 MySql 数据库检索用户和角色时遇到问题。我正在使用 Zend Framework 2 和 Doctrine 2。
查询如下
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
谁能指出这个查询有什么问题,非常感谢。
我想通了
问题出在线路上
->leftJoin('Application\Entity\UserRoles', 'r')
这应该是
->leftJoin('u.userRole', 'r')
userRole 在我的 Entity\Users class.
中定义
我在使用 DQL 查询从 MySql 数据库检索用户和角色时遇到问题。我正在使用 Zend Framework 2 和 Doctrine 2。
查询如下
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
谁能指出这个查询有什么问题,非常感谢。
我想通了
问题出在线路上
->leftJoin('Application\Entity\UserRoles', 'r')
这应该是
->leftJoin('u.userRole', 'r')
userRole 在我的 Entity\Users class.
中定义