Mysql
 sql >> Base de données >  >> RDS >> Mysql

Symfony2 créant et persistant des relations d'entité

Lorsque vous créez deux entités avec une relation un-à-un, les deux entités doivent être rendues persistantes soit explicitement, soit en utilisant la persistance en cascade d'un côté de la relation. Vous devez également définir explicitement les deux côtés de la relation.

Doctrine - Travailler avec les associations - Persistance transitive / Opérations en cascade

États :

Doctrine - Travailler avec des associations - Établir Associations

États :

Sans persistance en cascade, vous avez besoin de quelque chose comme ceci :

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

Avec cascade persist du côté Skin de la relation, vous pouvez omettre $em->persist($skin) . Notez que si vous persistez en cascade, vous supprimerez également en cascade :

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