简体   繁体   English

Doctrine - 删除所有实体

[英]Doctrine - delete all entities

I have problem with deleting all rows in database.我在删除数据库中的所有行时遇到问题。 I can't find out how to do it.我不知道该怎么做。 I'm using Symfony and Doctrine.我正在使用 Symfony 和 Doctrine。 Somewhere I read, that it isn't possible "normal" way, but I can do it by DQL (createQuery), but I don't know syntax.我在某处读到,这不可能是“正常”的方式,但我可以通过 DQL (createQuery) 来完成,但我不知道语法。

public function resetDatabase(EntityManagerInterface $em)
{
    $query = $em->createQuery('DELETE ???');
    $query->execute();

    return new Response('', Response::HTTP_OK);
}
public function resetDatabase(EntityManagerInterface $em)
{
    $query = $em->createQuery(
          'DELETE FROM App\Entity\YourEntity e WHERE e.age > :ageparameter'
       )->setParameter('ageparameter', 10)->execute();

    return new Response('', Response::HTTP_OK);
}

Ou... I have find out, how to do it.哦...我已经找到了,怎么做。

/**
* @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);
}

But sometimes it must run twice, because somehow after 30 seconds entities return (but there are only compulsory columns, others are null).但有时它必须运行两次,因为在 30 秒后实体以某种方式返回(但只有强制列,其他为空)。 And after second run it disappear completely.第二次运行后它完全消失。 It's strange, that it does only sometimes.奇怪的是,它只是有时。 Why it does at all?为什么会这样?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM