OneToMany
からC
の関係を持つのエンティティA
とB
の関係を作成しました。ディープクローン関係するエンティティを持つDoctrineエンティティ
このA
エンティティをクローンし、新しいIDでデータベースに設定する必要があります。また、すべての深い関係は新しいidsでクローン化されるべきです。
私は何をしようとしたことはnull
へA
IDを設定することです:
$A = clone $A_original;
$A->setId(null);
$em->persist($A);
それはA
テーブルに新しいレコードを作成しますが、B
とC
ではありません。
A
エンティティの完全コピーを作成するにはどうすればよいですか?
中関係のクローンを作成するより簡単な方法を設立し、それはしていないようですOneToMany、何かのアイデアに取り組む理由は? – coder4show
@ coder4showこれは、あなたが 'ArrayCollection'を複製し、その中の要素ではないためです。 OneToMany関係のクローンメソッドを追加しました。 – flec
この例では、OneToMany関係は正しくクローンされません。これは、クローンされた関連エンティティが引き続き古いエンティティを参照するためです。動作例については、[この回答](http://stackoverflow.com/a/28313673/3215645)を参照してください。 – Richard