簡體   English   中英

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

哦...我已經找到了,怎么做。

/**
* @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 秒后實體以某種方式返回(但只有強制列,其他為空)。 第二次運行后它完全消失。 奇怪的是,它只是有時。 為什么會這樣?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM