php - Doctrine Query Builder 从表中删除所有条目

标签 php symfony doctrine-orm

我在使用查询构建器删除由 id 找到的所有记录时遇到了一些麻烦
我试过像下面的代码,但我总是收到这个错误:

 [Semantical Error] line 0, col 53 near 'b.id = :surv': Error: 'b' is not defined. 

方法:
public function deleteUsers($surveyId) {
    $qb = $this->getEntityManager()->createQueryBuilder();

    return $qb
        ->delete()
        ->from(BaseUser::class, 'a')
        ->leftJoin('a.survey', 'b')
        ->where('b.id = :survey')
        ->setParameter('survey', $surveyId)
        ->getQuery()
        ->execute()
        ;
}

最佳答案

您根本无法在 Doctrine 的删除语句中使用连接。
一个机会可能是先获取应该从您的连接结果中删除的 id,然后执行简单的“删除 id 所在的位置”。这将起作用。

请参阅此问题/答案:Doctrine QueryBuilder delete with joins

关于php - Doctrine Query Builder 从表中删除所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39838491/

相关文章:

php - Symfony 4 中的注解

php - 如何在 Doctrine 中对 more andWhere 或 Where 进行分组

php - 在 PHP 中输​​出变量的 if 语句的优雅替代

php - 将索引数组转换为普通数组或简单数组

php - 加入特定键不起作用

php - 如何使用 nginx 反向代理 ssh 到我的远程 docker 容器

symfony - 将对象传递给自定义选民?

javascript - 从 Controller 创建 json 响应

php - Symfony 2 - 在 Id 之后向 Symfony 中的现有实体添加一列

php - 对学说的@OneToMany ArrayCollection 进行排序