在Symfony2 RC3中,我尝试在用户创建时在User对象(FOSUserBundle)上创建一个相关实体,以便我可以在编辑配置文件表单上显示相应的字段。我在RegistrationFormHandler中执行以下操作。
类RegistrationFormHandler { 受保护的$ request; protected $ userManager; protected $ form;
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;
}
}
程序记录确实在数据库中创建,但是使用null user_id,因此关联似乎无法正常工作。有谁知道这可能导致什么?
答案 0 :(得分:1)
解决方案是做$ programmes-> setUser($ this);在我的用户实体的addProgrammes方法