Doctrine - 删除所有实体

问题描述 投票:-1回答:1

我在删除数据库中的所有行时遇到问题。我找不到怎么做。我正在使用Symfony和Doctrine。在某处我读到,它不可能是“正常”的方式,但我可以通过DQL(createQuery)来实现,但我不知道语法。

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

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

感谢您的任何建议

mysql database symfony doctrine dql
1个回答
0
投票

欧......我已经找到了,怎么做。

/**
* @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秒后实体返回(但只有强制列,其他为空)。第二次运行后,它完全消失了。奇怪的是,它有时只会这样做。为什么会这样呢?

© www.soinside.com 2019 - 2024. All rights reserved.