基本上,我有一个代码分支连接到三个不同的实体管理器(以及随后的三个不同的MySQL数据库)。 不幸的是,有两个数据库的表名称相同,所以我不能将所有实体放在同一个目录中,对于结构,id就像要避免那样。
所以,我的问题是......我将如何设置它以便我可以拥有一个实体包,其中子目录位于Entity\
和Resources\config\doctrine\
e.g。
Acme\EntityBundle\Entity\DB1\Test.php
Acme\EntityBundle\Entity\DB1\Acme.php
Acme\EntityBundle\Entity\DB2\Test.php
Acme\EntityBundle\Entity\DB2\Foo.php
Acme\EntityBundle\Entity\DB3\Bar.php
和Resources\config\doctrine\
这里的配置非常模糊......
答案 0 :(得分:6)
您只需要重命名您的学说配置文件。
例如:
Bundle/Entity/DB1/User.php
Bundle/Entity/DB2/User.php
会产生相应的配置文件(在这种情况下为.yml,随意更改)
Bundle/Resources/config/doctrine/DB1.User.orm.yml
Bundle/Resources/config/doctrine/DB2.User.orm.yml
答案 1 :(得分:4)
如果你只需要捆绑来存储实体,我宁愿建议将它们存储在外面。这样你就可以将它们从框架中分离出来。
在这两种情况下配置都类似。可以在the official docs中访问参考。
以下是一个例子:
#app/config/config.yml
doctrine:
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
mappings:
AcmeDB1:
type: xml
is_bundle: false
dir: %kernel.root_dir%/../src/Acme/Entity/DB1/config
prefix: Acme\Entity\DB1
alias: AcmeDB1
AcmeDB2:
type: xml
is_bundle: false
dir: %kernel.root_dir%/../src/Acme/Entity/DB2/config
prefix: Acme\Entity\DB2
alias: AcmeDB2
很少注意到: