【问题标题】:FOSUserBundle - persisting related entities/documentsFOSUserBundle - 持久化相关实体/文档
【发布时间】:2012-12-11 12:04:03
【问题描述】:

我有一个应用,其中每个用户都有一个“主页”。

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

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

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

【问题讨论】:

    标签: forms symfony fosuserbundle database-relations


    【解决方案1】:

    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);
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-02
      • 2016-06-10
      • 2015-07-27
      • 2020-06-15
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多