Doctrine orm 如何在FOSUserBundle中的创建点向用户对象添加相关实体?

Doctrine orm 如何在FOSUserBundle中的创建点向用户对象添加相关实体?,doctrine-orm,symfony,Doctrine Orm,Symfony,在Symfony2 RC3中,我试图在用户创建时在用户对象(FOSUserBundle)上创建相关实体,以便在编辑配置文件表单上显示适当的字段。我正在RegistrationFormHandler中执行以下操作 类注册FormHandler { 受保护的美元请求; 受保护的$userManager; 受保护的美元形式 public function __construct(Form $form, Request $request, UserManagerInterface $userManage

在Symfony2 RC3中,我试图在用户创建时在用户对象(FOSUserBundle)上创建相关实体,以便在编辑配置文件表单上显示适当的字段。我正在RegistrationFormHandler中执行以下操作

类注册FormHandler { 受保护的美元请求; 受保护的$userManager; 受保护的美元形式

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方法中