Doctrine查询构建器删除"来自"没有"来自" ?

时间:2016-04-30 00:44:09

标签: symfony doctrine-orm query-builder

我正在使用Symfony 2.8。在Entity" Offerte"的函数editAction()中我有这段代码:

foreach($offerte->getGallery() as $gallery) {
            dump($gallery);
            if ($gallery->getImageName() == '') {
                dump("io sono dentro if");
                dump($gallery->getId());
                $qb = $em->createQueryBuilder();
                $qb->delete('ImageOfferte', 'io');
                $qb->from('image_offerte','io');
                $qb->where('io.id = :id');
                $qb->setParameter(':id', $gallery->getId());
                $qb->getQuery()->execute();
                dump($qb->getDQL());
                exit();
            }
}

ImageOfferte是另一个通过OneToMany关系链接的实体(通过$ gallery字段)

此代码返回此错误:

  

[语义错误]第0行,第7行附近' ImageOfferte':错误:类   ' ImageOfferte'没有定义。

我的错误在哪里?我找到了另一个"问题" here on stackoverflow表示"删除语句与select"不同但我不明白如何使用我的" ImageOfferte"在那个答案。

如果我使用此代码,一切正常:

$query = $em->createQuery('delete FROM AppBundle:ImageOfferte io where io.id = '.$gallery->getId());
$result = $query->execute();

1 个答案:

答案 0 :(得分:2)

我认为你应该删除 - > from()。

$qb = $em->createQueryBuilder();
$qb->delete('ImageOfferte', 'io');
$qb->where('io.id = :id');
$qb->setParameter(':id', $gallery->getId());
$qb->getQuery()->execute();