0

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 はクエリについて不平を言います。正確なエラー メッセージは次のとおりです: (string) [Syntax Error] line 0, col 87: Error: Expected Literal, got 'group'

4

1 に答える 1

1

キーワード グループが問題を引き起こしたようです。グループの代わりに gr エイリアスを使用すると、正常に機能しました。したがって、次の DQL が機能しました。

    $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);
于 2013-06-20T15:02:35.880 に答える