Doctrine - 删除所有实体
Doctrine - delete all entities
我在删除数据库中的所有行时遇到问题。我不知道该怎么做。我正在使用 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 秒后实体 return(但只有必填列,其他列为空)。在第二个 运行 之后它完全消失了。很奇怪,它只是偶尔出现。为什么会这样?
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);
}
我在删除数据库中的所有行时遇到问题。我不知道该怎么做。我正在使用 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 秒后实体 return(但只有必填列,其他列为空)。在第二个 运行 之后它完全消失了。很奇怪,它只是偶尔出现。为什么会这样?
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);
}