具有多个实体管理器的FOSUserBundle - Symfony 2设置

时间:2013-09-18 09:59:58

标签: symfony doctrine-orm fosuserbundle fosoauthserverbundle

我一直在项目中使用FOSUserBundle和FOSOAuthBundle一段时间没有问题,但我最近添加了另一个数据库连接和另一个实体管理器,因此不再依赖auto_mapping。 / p>

我已将两个捆绑包的映射添加到其中一个实体管理器中,一切似乎都正常。

但是,我发现用户在运行app/console doctrine:schema:create时不再生成正确的架构时出现问题,这表明存在映射问题。值得注意的是,FOSOAuthBundle的客户端映射正常。

我认为FOSUserBundle中的映射被忽略了,我不确定我做错了什么。

实体经理设置:

orm:
    default_entity_manager: default
    auto_generate_proxy_classes: %kernel.debug%

    entity_managers:
        other:
            connection: other
            mappings:
                SteveMainBundle: ~
        default:
            connection: default
            mappings:
                SteveMainBundle: ~
                SteveWebBundle: ~
                FOSUserBundle: ~
                FOSOAuthServerBundle: ~

fos_user设置:

fos_user:
    db_driver: orm
    firewall_name: main
    user_class: Steve\MainBundle\Entity\User

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

请参阅this question了解可能的解决方案。

您可以通过添加em="entitymanager_name"来指定要与命令一起使用的特定实体管理器。

app/console doctrine:schema:create --dump-sql em="other"

答案 1 :(得分:0)

我们通过将FOSUserBundle升级到最新版本(2.0)来解决这个问题。不确定在这种情况下发生了什么,如果它是我们所处的版本中的错误。如果我再找不到,请留在这里。

答案 2 :(得分:0)

您可以通过

设置自定义实体管理器
model_manager_name

选项。 Look into documentation