När du skapar två entiteter med en en-till-en-relation måste båda entiteterna bevaras antingen explicit eller genom att använda kaskadbeständig på ena sidan av relationen. Du måste också uttryckligen ange båda sidor av relationen.
Doktrin - att fungera med föreningar - Transitiv uthållighet / Cascade Operations
Stater:
Doktrin - Arbeta med föreningar - Etablering Föreningar
Stater:
Utan att kaskad kvarstår behöver du något sånt här:
$skin = new Skin();
$email = new Email();
$skin->setEmail($email);
$email->setSkin($skin);
$em->persist($email);
$em->persist($skin);
$em->flush();
Med cascade persist på hudsidan av relationen kan du utelämna $em->persist($skin)
. Observera att om du kaskader kvarstår, skulle du vanligtvis också ta bort:
* @ORM\OneToOne(targetEntity="MediaparkLt\UserBundle\Entity\Email", inversedBy="skin", cascade={"persist", "remove"})