1
を私は教義でこれを行う:Doctrineは削除 - 更新マージ問題
$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は2件の削除を実行しますが、何のアップデートは実行されません:
しかし、私はこれを行います。どうして?
Doctrineが分離フィールドにIDを持っていても、新しいフィールドを挿入しようとしました。
$ e OneToMany関係でorphanRemoval = trueを使用していることに注目してください。
同じフラッシュで削除と更新を行うにはどうすればよいですか?
私の問題は、PUT操作で、同じ操作で関連フィールドを追加、削除、変更したいということです。どうやってやるの? 多くのケースを試しましたが、解決できません。