条令-删除所有实体

kgqe7b3p  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(423)

删除数据库中的所有行时出现问题。我不知道怎么做。我在用符号和教义。我在某个地方读到,这是不可能的“正常”方式,但我可以通过dql(createquery)来实现,但我不知道语法。

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

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

谢谢你的建议

qq24tv8q

qq24tv8q1#

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);
}
ztmd8pv5

ztmd8pv52#

欧点。。。我已经知道怎么做了。

/**

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

相关问题