Doctrine2刷新一个被删除的实体

Tim*_*tle 7 php orm doctrine-orm

尝试删除实体,而不保留其他更改.请注意(虽然在这种特定情况下并不是真的需要),但该方法不应影响flush()操作后调用的结果.

$em->remove($entity);
$em->flush($entity);
Run Code Online (Sandbox Code Playgroud)

那扔了一个'InvalidArgumentException' with message 'Entity has to be managed for single computation.

我可以使用DQL来删除; 只是想知道是否有办法通过实体经理来做到这一点.

man*_*nix 2

试试这个:

  1. 从当前 EM 中分离实体:

    $em->detach($entity);  
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建 EM 的新实例并使用它来删除:

    $em2->remove($entity);
    $em2->flush();   
    
    Run Code Online (Sandbox Code Playgroud)

clear()或者,您可以使用负责从 EM 分离所有实体的方法,如下所示:

$em->clear();
$em->remove($entity);
$em->flush(); 
Run Code Online (Sandbox Code Playgroud)