如果我打电话给->remove()
或->persist()
然后->flush()
,这可以正常工作,但是,我希望$ entity1被删除($ em-> remove( ))和$ entity2将被保留。
这是代码。请注意,$ entity1和$ entity2是两个独立的实体/类:
$em->persist($entity1);
$em->flush();
$em->detach($entity1); // detaching because $entity2 is a different class of Entities.
$em->remove($entity2);
$em->flush();
我还尝试将@doctrine
作为参数传递给构造函数(EntityRegistry),但没有运气:
$em = $this->mr->getManagerForClass(get_class($entity1));
$em->persist($entity1);
$em->flush();
$em2 = $this->mr->getManagerForClass(get_class($entity2));
em2->remove($entity2);
$em2->flush();
问题是,新的$ entity1已创建,但$ entity2未被删除。日志显示DELETE FROM *和INSERT INTO *查询..
特别是我使用的是Sonata,而不是独立的Doctrine或Symfony。