Když vytvoříte dvě entity se vztahem jedna ku jedné, obě entity musí být zachovány buď explicitně, nebo pomocí kaskádového přetrvání na jedné straně vztahu. Musíte také explicitně nastavit obě strany vztahu.
Doktrína – pracovní s asociacemi – Transitive persistence / Cascade Operations
Státy:
Doktrína – Práce s asociacemi – Zakládání Asociace
Státy:
Bez přetrvávání kaskády potřebujete něco takového:
$skin = new Skin();
$email = new Email();
$skin->setEmail($email);
$email->setSkin($skin);
$em->persist($email);
$em->persist($skin);
$em->flush();
S kaskádovým persistováním na straně vzhledu vztahu můžete vynechat $em->persist($skin)
. Všimněte si, že pokud kaskádování přetrvává, obvykle také kaskádové odstranění:
* @ORM\OneToOne(targetEntity="MediaparkLt\UserBundle\Entity\Email", inversedBy="skin", cascade={"persist", "remove"})