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 - 删除所有实体的主要内容,如果未能解决你的问题,请参考以下文章

Doctrine 2 ORM 级联删除相关实体

Symfony 2 - Doctrine 2 - Native Sql - 删除查询

Doctrine2 刷新单个删除的实体

如何在symfony中禁用doctrine的软删除(软删除)过滤器

Doctrine2 - 无法删除具有单向 oneToMany 关系的实体

Symfony Doctrine 关系 - 删除反面的实体