Ho creato un'entità A
con OneToMany
relazione a B
, che ha relazione OneToMany
a C
.Entità Doctrine clone profondo con entità correlate
Devo clonare questa entità A
e impostarla nel database con un nuovo ID. Anche tutte le relazioni profonde dovrebbero essere clonate anche con nuovi id.
Che ho ho cercato è quello di impostare A
id per null
:
$A = clone $A_original;
$A->setId(null);
$em->persist($A);
Crea nuovo record nella tabella A
, ma non in B
e C
.
Cosa devo fare per creare una copia completa dell'entità A
?
L'unico problema con questo è, non sembra lavorare su OneToMany, qualche idea perché? – coder4show
@ coder4show è perché si sta clonando 'ArrayCollection' e non gli elementi in esso. Ho aggiunto un metodo clone per una relazione OneToMany. – flec
In questo esempio, la relazione OneToMany non verrà clonata correttamente, poiché le entità correlate clonate si riferiscono ancora alla vecchia entità. Vedi [questa risposta] (http://stackoverflow.com/a/28313673/3215645) per un esempio operativo – Richard