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"})