Doctrine删除 - 更新合并问题

时间:2016-05-26 12:10:40

标签: php symfony doctrine-orm

我这样做是为了学说:

$ds = new Entity();
$ds->setId(4);
$ds->setField('Foo');
$em->merge($ds);
$em->flush();

Doctrine执行更新。

但我这样做:

$e = $em->find(1);
$r = $e->getRelatedCollection()->get(0);
$e->getRelatedCollection()->remove(0);
$e->getRelatedCollection()->remove(1);

$a = new TypeRelated();
$a->setId($r->getId());
$a->setField("bar");
$e->getRelatedCollection()->set(0, $a);
$a->setInverse($e);
$em->merge($e);
$em->flush();

Doctrine执行两次删除,但不执行任何更新。为什么呢?

我尝试了一些案例,即即使分离的实体具有Id,Doctrine也会尝试插入新字段。

注意到我在$ e OneToMany关系中使用了orphanRemoval = true。

如何在同一个同花顺中删除和更新?

我的问题是在PUT操作中我想在同一操作中添加,删除和修改相关字段。我怎样才能做到这一点? 我尝试了很多案例,但我无法解决。

1 个答案:

答案 0 :(得分:-1)

你可以尝试坚持合并

$ EM->坚持($ E);