我已经有一个月的问题了。
数据库:
- 表格:
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
答案 0 :(得分:0)
我找到了解决方案(Halleluja)!
实际上我正在通过不同的页面传输对象$ oUser,当我刷新它时,我为之前加载的外表执行此操作,这就是为什么EntityManager不识别它们并在表上创建新行。
谢谢。