0

我在这里关注文档:

这些是命令

php app/console doctrine:mapping:convert xml ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force
php app/console doctrine:mapping:import AcmeBlogBundle annotation
php app/console doctrine:generate:entities AcmeBlogBundle

我在这里看到了新的实体"

Acme/BlogBundle/AcmeBlogBundle/Entity

但我想知道如何像这样将实体添加到他们自己的命名空间中

Acme/BlogBundle/AcmeBlogBundle/Entity/Foo
Acme/BlogBundle/AcmeBlogBundle/Entity/Bar

这样我就可以将 Foo 和 Bar 数据库的实体分开。

更新:

或者它应该是这样的结构:

Acme/BlogBundle/AcmeBlogBundle/Foo/Entity
Acme/BlogBundle/AcmeBlogBundle/Bar/Entity

想法?

4

1 回答 1

7

如果您查看文档的How to work with Multiple Entity Managers and Connections部分,您会注意到您可以将捆绑实体绑定到一个或多个实体管理器。它们中的每一个都与特定的数据库连接相关。

例如,如果我定义了两个数据库连接(first_connection 和 second_connection),我可以添加两个实体管理器,如下所示,

entity_managers:
    first_manager:
        connection:       first_connection
        mappings:
            MyBundle:
                dir:      Path/To/EntityFolder/Foo/
    second_manager:
        connection:       second_connection
        mappings:
            MyBundle:
                dir:      Path/To/EntityFolder/Bar/

然后,您可以指定要在实体生成过程的前两个步骤中使用的正确实体管理器,

php app/console doctrine:mapping:convert xml ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force --em=first_manager --filter=MyTable

注意:--filter选项用于允许您单独生成实体。

php app/console doctrine:mapping:import AcmeBlogBundle annotation --em=first_manager --filter=MyTable

php app/console doctrine:generate:entities AcmeBlogBundle

然后根据绑定到的连接将您的实体放入正确的文件夹中。

于 2012-11-29T20:41:16.910 回答