我在这里关注文档:
这些是命令
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
思想?
答案 0 :(得分:7)
如果您查看文档的How to work with Multiple Entity Managers and Connections部分,您会发现可以将捆绑实体绑定到一个或多个entity managers。其中每一个都与特定的数据库连接有关。
例如,如果我已经定义了两个数据库连接(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/
然后,您可以指定在entity generation process的两个第一步中使用的正确实体管理器,
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
然后根据绑定的连接将您的实体放入正确的文件夹中。