0

我想建立一个用户可以登录注册的网站。对于用户管理,我使用 FOSUserbundle。现在我想为 FOSUserBundle 使用与其他捆绑包不同的数据库连接。我的 config.yml 文件如下所示:

doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   "%database1_driver%"
                host:     "%database1_host%"
                port:     "%database1_port%"
                dbname:   "§database1_name%"
                user:     "%database1_user%"
                password: "%database1_password%"
                charset:  UTF8

            user:
                driver:   "%database2_driver%"
                host:     "%database2_host%"
                port:     "%database2_port%"
                dbname:   "%database2_name%"
                user:     "%database2_user%"
                password: "%database2_password%"
                charset:  UTF8

orm:
    default_entity_manager:   default
    entity_managers:
        default:
            connection:       default
            mappings:
                MyProjectMainBundle: ~
        user:
            connection:       user
            mappings:
                MyProjectUserBundle: ~

当我尝试加载页面时出现错误MappingException: The class 'MyProject\UserBundle\Entity\User' was not found in the chain configured namespaces MyProject\MainBundle\Entity, FOS\UserBundle\Model

我完全遵循了 FOSUserBundle 的文档,如果我使用它就可以工作

auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true

在 config.yml 中。唯一的问题是,它只生成文档中新实体中定义的表格。只生成一个 id 字段,而不是像它应该生成的整个 fos_user 表。

我知道以前有人问过一些类似的问题,但我尝试使用那里的所有解决方案,但没有奏效。那么我该如何解决这个问题呢?甚至可能吗?我真的需要使用单独的数据库,因为我的项目将使用很多表,我不希望它变得太乱。

4

1 回答 1

8
    user:
        connection:       user
        mappings:
            FOSUserBundle: ~
            MyProjectUserBundle: ~

需要将 FOSUserBundle 添加到您的映射中以消除实体错误

并确保您在 config.ym 中设置了 model_manager_name;

fos_user:
    db_driver:     orm
    firewall_name: main
    user_class:    Cerad\Bundle\AccountBundle\Entity\AccountUser
    model_manager_name: user
于 2013-08-04T00:22:33.463 回答