Ich habe eine Entität A
mit OneToMany
Beziehung zu B
, die Beziehung OneToMany
zu C
haben.Deep Clone Doctrine Entity mit verwandten Entitäten
Ich muss dieses A
Entity klonen und es in der Datenbank mit neuer ID setzen. Auch alle tiefen Beziehungen sollten mit neuen IDs geklont werden.
Was haben habe ich versucht, ist A
-ID auf null
:
$A = clone $A_original;
$A->setId(null);
$em->persist($A);
Es neuen Rekord in A
Tabelle erstellt, aber nicht in B
und C
.
Was soll ich tun, um eine vollständige Kopie von A
Einheit zu machen?
Das einzige Problem dabei ist, es scheint nicht zu Arbeit an OneToMany, irgendwelche Ideen warum? – coder4show
@ coder4show Das liegt daran, dass Sie die'ArrayCollection' und nicht die darin enthaltenen Elemente klonen. Ich habe eine Clone-Methode für eine OneToMany-Beziehung hinzugefügt. – flec
In diesem Beispiel wird die OneToMany-Beziehung nicht korrekt geklont, da sich die geklonten verwandten Entitäten immer noch auf die alte Entität beziehen. Siehe [diese Antwort] (http://stackoverflow.com/a/28313673/3215645) für ein funktionierendes Beispiel – Richard