Khi bạn tạo hai thực thể có mối quan hệ một-một, cả hai thực thể cần được duy trì một cách rõ ràng hoặc bằng cách sử dụng lưu trữ theo tầng ở một phía của mối quan hệ. Bạn cũng cần xác định rõ ràng cả hai mặt của mối quan hệ.
Học thuyết - Làm việc với các Hiệp hội - Tính bền bỉ xuyên suốt / Hoạt động theo tầng
Kỳ:
Doctrine - Làm việc với Hiệp hội - Thành lập Hiệp hội
Kỳ:
Nếu không có dòng thác kéo dài, bạn cần một cái gì đó như thế này:
$skin = new Skin();
$email = new Email();
$skin->setEmail($email);
$email->setSkin($skin);
$em->persist($email);
$em->persist($skin);
$em->flush();
Với sự tồn tại của dòng thác ở phía Skin của mối quan hệ, bạn có thể bỏ qua $em->persist($skin)
. Lưu ý nếu bạn phân tầng vẫn tiếp tục, bạn thường cũng sẽ loại bỏ tầng:
* @ORM\OneToOne(targetEntity="MediaparkLt\UserBundle\Entity\Email", inversedBy="skin", cascade={"persist", "remove"})