Mysql
 sql >> Database >  >> RDS >> Mysql

Symfony2 crea e mantiene relazioni di entità

Quando crei due entità con una relazione uno-a-uno, entrambe le entità devono essere mantenute in modo esplicito o usando la persistenza a cascata su un lato della relazione. Devi anche impostare in modo esplicito entrambi i lati della relazione.

Dottrina - Lavorare con Associazioni - Persistenza transitiva / Operazioni a cascata

Stati:

Dottrina - Lavorare con le associazioni - Istituzione Associazioni

Stati:

Senza cascata persistente hai bisogno di qualcosa del genere:

$skin = new Skin();
$email = new Email();
$skin->setEmail($email);
$email->setSkin($skin);
$em->persist($email);
$em->persist($skin);
$em->flush();

Con cascade persist sul lato Skin della relazione puoi omettere $em->persist($skin) . Nota se si persiste in cascata, di solito si rimuove anche in cascata:

 * @ORM\OneToOne(targetEntity="MediaparkLt\UserBundle\Entity\Email", inversedBy="skin", cascade={"persist", "remove"})