Как я могу добавить связанный объект к объекту пользователя в точке создания в FOSUserBundle? - PullRequest
0 голосов
/ 30 июня 2011

В Symfony2 RC3 я пытаюсь создать связанный объект на объекте User (FOSUserBundle) в точке создания пользователя, чтобы я мог отобразить соответствующие поля в форме редактирования профиля. Я делаю следующее в RegistrationFormHandler.

класс RegistrationFormHandler { защищенный запрос $; защищенный $ 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;
}

}

Запись программы создается в базе данных, но с нулевым user_id, поэтому кажется, что связь работает неправильно. Кто-нибудь знает, что может быть причиной этого?

1 Ответ

1 голос
/ 06 июля 2011

Решением было сделать $ programmes-> setUser ($ this);в методе addProgrammes моего объекта User

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...