使用Doctrine / Symfony2中的1 EntityManager删除和保留不同的实体

时间:2015-07-21 09:18:17

标签: symfony doctrine-orm doctrine sonata-admin sonata

如果我打电话给->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。

0 个答案:

没有答案