0

我有一个应用程序,每个用户都有一个“家”。

我已经覆盖了我的 FOSUserBundle 注册 FormType 以嵌入 Home 并在注册过程中捕获一些属性。不幸的是,当我注册时,新用户仍然存在,但新主页没有。

我真的不想在用户上设置 postPersist 侦听器,以防我想为现有主页创建第二个用户。我假设我必须覆盖 RegistrationFormHandler onSuccess() 或 process() 方法并手动保留主页?如果是这种情况,我是否必须在构造函数中注入 DocumentManager?这是最好的方法吗?

如果这有什么不同,我使用 Doctrine MongoDB ODM 作为存储层?

4

1 回答 1

0

创建了自己的 RegistrationFormHandler并覆盖了 onSuccess 方法:

public function onSuccess(UserInterface $user, $confirmation)
{
    $home = $user->getHome();
    $this->documentManager->persist($home);
    $this->documentManager->flush();

    parent::onSuccess($user, $confirmation);
}

这使用了您需要在构造函数中注入的文档管理器。

于 2012-12-11T17:14:10.663 回答