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"})