如何使用 Doctrine delete/debug 多行?

How to delete/debug multiple rows with Doctrine?

我有一个 Foos 实体关联到 foos table。 我正在尝试使用 createQueryBuilder().

从那里删除许多行

我没有完成该任务,没有任何记录,没有异常,也没有发送到 mysql 的 DELETE 查询(我试图在 mysql 中记录所有查询)。

我是不是漏掉了什么?

/** @var  Doctrine\ORM\EntityManagerInterface $this->entityManager */
$qb = $this->entityManager->createQueryBuilder()
    ->delete('Foos', 'foo')
    ->where('foo.some_column = :someAttr and another_column != :anotherAttr')
    ->setParameter('someAttr', $someAttr)
    ->setParameter('anotherAttr', $anotherAttr);

我检查了 getDQL() 部分和查询似乎是正确的。但是测试行没有按预期被删除。

我该如何调试或使其正确?

您没有执行查询。

$qb,在您的示例中,只是一个 QueryBuilder,正如对 createQueryBuilder().

的调用所证明的那样

构建完查询后,您需要获取构建的对象并执行它:

$qb->getQuery()->execute();