Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Symfony2 erstellt und behält Entitätsbeziehungen bei

Wenn Sie zwei Entitäten mit einer Eins-zu-Eins-Beziehung erstellen, müssen beide Entitäten entweder explizit oder mithilfe von Cascade persist auf einer Seite der Beziehung beibehalten werden. Sie müssen auch explizit beide Seiten der Beziehung festlegen.

Lehre - Arbeiten mit Assoziationen - Transitive Persistenz / Kaskadenoperationen

Zustände:

Doktrin – Arbeit mit Verbänden – Gründung Verbände

Zustände:

Ohne Kaskaden-Persistenz brauchen Sie so etwas:

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

Mit cascade persist auf der Skin-Seite der Beziehung können Sie $em->persist($skin) weglassen . Beachten Sie, dass Sie beim Kaskadieren von Persistieren normalerweise auch Folgendes entfernen würden:

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