FOSUserBundle - 持久化相关实体/文档

时间:2012-12-11 12:04:03

标签: forms symfony fosuserbundle database-relations

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

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

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

如果有任何不同,我使用Doctrine MongoDB ODM作为存储层?

1 个答案:

答案 0 :(得分:0)

created my own RegistrationFormHandler并覆盖了onSuccess方法:

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

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

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