Doctrine orm 如何在FOSUserBundle中的创建点向用户对象添加相关实体?
在Symfony2 RC3中,我试图在用户创建时在用户对象(FOSUserBundle)上创建相关实体,以便在编辑配置文件表单上显示适当的字段。我正在RegistrationFormHandler中执行以下操作 类注册FormHandler { 受保护的美元请求; 受保护的$userManager; 受保护的美元形式Doctrine orm 如何在FOSUserBundle中的创建点向用户对象添加相关实体?,doctrine-orm,symfony,Doctrine Orm,Symfony,在Symfony2 RC3中,我试图在用户创建时在用户对象(FOSUserBundle)上创建相关实体,以便在编辑配置文件表单上显示适当的字段。我正在RegistrationFormHandler中执行以下操作 类注册FormHandler { 受保护的美元请求; 受保护的$userManager; 受保护的美元形式 public function __construct(Form $form, Request $request, UserManagerInterface $userManage
public function __construct(Form $form, Request $request, UserManagerInterface $userManager)
{
$this->form = $form;
$this->request = $request;
$this->userManager = $userManager;
}
public function process($confirmation = null)
{
$user = $this->userManager->createUser();
$this->form->setData($user);
if ('POST' == $this->request->getMethod()) {
$this->form->bindRequest($this->request);
if ($this->form->isValid()) {
if (true === $confirmation) {
$user->setEnabled(false);
} else if (false === $confirmation) {
$user->setConfirmationToken(null);
$user->setEnabled(true);
}
$prog = new \MyBundle\CoreBundle\Entity\Programme();
$prog->setStartDate(date_create());
$prog->setEndDate(date_create());
$prog->setWeeklyTarget(4);
$prog->setGoal('');
$user->addProgrammes($prog);
$this->userManager->updateUser($user);
return true;
}
}
return false;
}
}
程序记录确实在数据库中创建,但用户id为空,因此关联似乎无法正常工作。有人知道这可能是什么原因吗?解决方案是执行$programmes->setUser($this);在我的用户实体的addPrograms方法中