如何使用 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();
我有一个 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();