2011-06-30 3 views
0

Symfony2 RC3では、ユーザー作成時にUserオブジェクト(FOSUserBundle)上に関連するエンティティを作成して、編集プロファイルフォームに適切なフィールドを表示できるようにしようとしています。私は、RegistrationFormHandlerで次のことをしています。FOSUserBundleの作成時点で、関連するエンティティをユーザオブジェクトに追加するにはどうすればよいですか?

class RegistrationFormHandler { protected $ 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; 
} 

}

アソシエーションが正しく動作していないようですので、プログラムのレコードがデータベースではなく、ヌルUSER_IDで作成されますありません。誰がこれを引き起こしているのか知っていますか?

答えて

1

解決方法は$ programmes-> setUser($ this)です。私のユーザーエンティティのaddProgrammesメソッドで

関連する問題