Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Symfony2 criando e persistindo relacionamentos de entidade


Quando você cria duas entidades com um relacionamento um para um, ambas as entidades precisam ser persistidas explicitamente ou usando persistência em cascata em um lado do relacionamento. Você também precisa definir explicitamente os dois lados do relacionamento.

Doutrina - Trabalho com Associações - Persistência Transitiva / Operações em Cascata

Estados:

Doutrina - Trabalhando com Associações - Estabelecendo Associações

Estados:

Sem persistência em cascata, você precisa de algo assim:
$skin = new Skin();
$email = new Email();
$skin->setEmail($email);
$email->setSkin($skin);
$em->persist($email);
$em->persist($skin);
$em->flush();

Com cascade persist no lado da Skin do relacionamento, você pode omitir $em->persist($skin) . Observe que se você persistir em cascata, normalmente também removeria em cascata:
 * @ORM\OneToOne(targetEntity="MediaparkLt\UserBundle\Entity\Email", inversedBy="skin", cascade={"persist", "remove"})