我在ZF2代码中使用Doctrine 2,我正在尝试编写更新查询。 代码是这样的:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->update('Application\Entity\Groups', 'group')
->set('group.state', '?1')
->set('group.modified', '?2')
->where($qb->expr()->eq('group.id', '?3'))
->setParameter(1, \Application\Entity\Groups::STATE_DELETED)
->setParameter(2, $modified)
->setParameter(3, $group_id);
Doctrine2抱怨查询。确切的错误消息是: (字符串)[语法错误]第0行,第87行:错误:预期文字,得到'组'
答案 0 :(得分:1)
关键字组似乎产生了问题。当我使用gr别名而不是group时它运行正常。 所以,DQL bellow工作:
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->update('Application\Entity\Groups', 'gr')
->set('gr.state', ':state')
->set('gr.modified', ':modified')
->where($qb->expr()->eq('gr.id', ':group_id'))
->setParameter('group_id', $group_id)
->setParameter('state', \Application\Entity\Groups::STATE_DELETED)
->setParameter('modified', $modified);