我是Symfony2的新手,我没有得到任何有关此错误消息的答案
Entities passed to the choice field must be managed. Maybe persist them in the entity manager?
我的Symfony版本是2.3
我在Controller addAction()
中输入了这样的代码 $em = $this->getDoctrine()->getManager();
$user = new User(); //User is my main entity
$form = $this->createFormBuilder($user)
->add('company','entity', array(
'class' => 'AGUserBundle:Company', //OneToMany child entity with User
'property' => 'name',
'multiple' => false
))
->getForm();
$form->add('Ajouter', 'submit', array(
'attr' => array('class' => 'btn btn-primary'),
));
$request = $this->get('request');
$form->handleRequest($request);
if($form->isValid()){
$em->persist($user);
$em->flush();
}
我有一个与我的公司类具有OneToMany关系的User类,一切都由Doctrine正确生成。
我的目标是使用当前的公司列表制作用户创建表单,以允许用户选择一个并将其链接到他的帐户。
感谢您的帮助!
答案 0 :(得分:0)
感谢@Andariel,我的关系错了(需要一个ManyToOne)
对于我的第二个问题,我能够使用FOSUserBundle的userManager注册用户,它就像一个魅力。
这是代码,如果它可以帮助某人:
if($form->isValid()){
//Getting the company from FORM Response
$companyObject = $form->getData()->getCompany();
//Setting company to user Obj
$user->setCompany($companyObject);
//Persisting changes
$userManager->updateUser($user,false);
$this->get('session')->getFlashBag()->add(
'notice',
'User added !'
);
return $this->redirect($this->generateUrl('user_list'));
}