doctrine2查询生成器有什么问题 - 期望的文字

时间:2013-06-20 13:26:50

标签: doctrine-orm zend-framework2

我在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行:错误:预期文字,得到'组'

1 个答案:

答案 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);