我想删除一个属于另一个对象的对象,但是当我这样做时,我得到一个异常,说“找不到实体。”
我的意思的一个例子:
// Foo has a private property, bar, which is an instance of Bar
$foo = $this->get('my_bundle.repository.foo')->find($fooId);
$bar = $foo->getBar();
$entityManager = $this->get('doctrine.orm.entity_manager');
$entityManager->remove($bar);
$entityManager->flush();
我想这是因为实体管理器没有直接加载Bar
的实例,因为以下似乎有效:
// Foo has a private property, bar, which is an instance of Bar
$foo = $this->get('my_bundle.repository.foo')->find($fooId);
$bar = $this->get('my_bundle.repository.foo')->find($bar->getId());
$entityManager = $this->get('doctrine.orm.entity_manager');
$entityManager->remove($bar);
$entityManager->flush();
有没有办法让这项工作无需重新加载$bar
?
答案 0 :(得分:0)
问题是当您刷新实体管理器时,Foo仍然将Bar作为属性。做
$foo->setBar(null);
$entityManager->persist($foo);
在你进行冲洗之前