Doctrine - 删除所有实体
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Doctrine - 删除所有实体相关的知识,希望对你有一定的参考价值。
我在删除数据库中的所有行时遇到问题。我找不到怎么做。我正在使用Symfony和Doctrine。在某处我读到,它不可能是“正常”的方式,但我可以通过DQL(createQuery)来实现,但我不知道语法。
public function resetDatabase(EntityManagerInterface $em)
{
$query = $em->createQuery('DELETE ???');
$query->execute();
return new Response('', Response::HTTP_OK);
}
感谢您的任何建议
答案
欧......我已经找到了,怎么做。
/**
* @Route("/resetdatabase")
*/
public function resetDatabase(EntityManagerInterface $em)
{
$repository = $em->getRepository(MoneyDatabase::class);
$entities = $repository->findAll();
foreach ($entities as $entity) {
$em->remove($entity);
}
$em->flush();
return new Response('', Response::HTTP_OK);
}
但有时它必须运行两次,因为不知何故,30秒后实体返回(但只有强制列,其他为空)。第二次运行后,它完全消失了。奇怪的是,它有时只会这样做。为什么会这样呢?
以上是关于Doctrine - 删除所有实体的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 2 - Doctrine 2 - Native Sql - 删除查询
如何在symfony中禁用doctrine的软删除(软删除)过滤器