Symfony2 - 坚持实体而不坚持其关联

时间:2013-12-03 23:18:31

标签: php entity-framework symfony

我已经有一个月的问题了。

数据库:

- 表格:

1-“职业”:预先填写

2-“用户”

在我的实体“用户”中,我有:

/**
* @ORM\ManyToOne(targetEntity="M\CoreBundle\Entity\Profession", cascade={"persist"} )
*/
protected $profession;

我创建了一个FormType,在那里我获取将在下拉列表中显示的所有职业。

...
->add('profession', 'entity', array(
'label'  => 'Profession',
'empty_value' => 'Sélectionnez',
'class' => 'MCoreBundle:Profession',
'query_builder' => function($repository) { return $repository->createQueryBuilder('p')->orderBy('p.nom, p.id', 'ASC'); },
'property' => 'nom',
'required'  => true
))
...

当即将刷新我的“用户”实体时:

$oEm = $this->getDoctrine()->getManager();
$oUser->setRoles(array('ROLE_USER'));
$oImages->setUser($oUser);

// On le persiste
$oEm->persist($oUser);
$oEm->persist($oImages);

// On déclenche l'enregistrement
$oEm->flush();

问题: 我的数据保存得很好,但它在“专业”表上记录了一个新行。

问题: 我怎么能这样做,以便Symfony保存用户而不保存其“专业”的关联?

感谢您的帮助

PS:我在 Symfony 2.2.8

1 个答案:

答案 0 :(得分:0)

我找到了解决方案(Halleluja)!

实际上我正在通过不同的页面传输对象$ oUser,当我刷新它时,我为之前加载的外表执行此操作,这就是为什么EntityManager不识别它们并在表上创建新行。

谢谢。