我在使用查询构建器删除由 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/