[英]doctrine querybuilder syntax error expected =, <, <=, <>, >, >=, !=, got end of string
[英]Querybuilder : Error: Expected end of string, got '('
這是查詢:
public function getTeachersBySchool(School $school)
{
$qb2 = $this->getEntityManager()->createQueryBuilder('UserGroup ug')
->select('ug.members')
->where('ug.school = :school')
->andWhere('ug.name = "teachers"')
->setParameter('school', $school)
;
$qb = $this->getEntityManager()->createQueryBuilder('Project\UserBundle\Entity\User u');
$query = $qb
->select('Project\UserBundle\Entity\User')
->where($qb->expr()->in('Project\UserBundle\Entity\User', $qb2->getDQL()))
;
return $query;
}
我不明白為什么會收到此錯誤,尤其是所進行的SQL查詢似乎正確:
SELECT Project\UserBundle\Entity\User WHERE Project\UserBundle\Entity\User IN(SELECT ug.members WHERE ug.school = :school AND ug.name = "teachers")
編輯:我不認為問題出在andWhere('ug.name = "teachers"')
因為即使刪除此行,錯誤仍然相同。
嘗試
$qb2 = $this->getEntityManager()->createQueryBuilder('UserGroup ug')
->select('ug.members')
->where('ug.name = teachers')
->andWhere('ug.school = :school')
->setParameter('school', $school)
;
嘗試這個:
$qb2 = $this->getEntityManager()->createQueryBuilder('UserGroup ug')
->select('ug.members')
->where('ug.school = :school')
->andWhere('ug.name = :teachers')
->setParameters([
'school' => $school,
'teachers' => "teachers"
]);
嘗試這個:
$qb2 = $this->getEntityManager()->createQueryBuilder()
->select('ug.members')
->from(UserGroup::class, 'ug')
->where('ug.school = :school')
->andWhere('ug.name = "teachers"')
->setParameter('school', $school);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.