如何更改 symfony 2 学说映射器以使用我的自定义目录而不是捆绑包下的实体目录
我在我的 symfony 2.3 应用程序中使用了学说.我想使用像
I use doctrine in my symfony 2.3 application. I want to use a folder structure like
/MyBundleName/User/User.php
对于我的实体.
问题:
无论如何,我是否可以直接显式映射学说 ORM 以使用显式目录,而不是默认为我的 Bundle 的 Entity
目录?
Is there anyway that I can explicitly map doctrine ORM directly to use an explicit directory instead of defaulting to the Entity
Directory of my Bundle?
我想将所有相关文件保存在各自的目录中,例如
I would like to keep all related files in their respective directory such as ProductProvider
in
/MyBundleName/Product/ProductProvider.php
任何帮助将不胜感激.
推荐答案
只是为了跟进@Imanol 的正确答案,可以将您的实体放在一个实体管理器下的多个目录中:
Just to follow up a bit on @Imanol's correct answer, it is possible to have your entities in multiple directories under one entity manager:
doctrine:
orm:
default_entity_manager: default
auto_generate_proxy_classes: %kernel.debug%
entity_managers:
default:
connection: default
mappings:
test01:
connection: test01
mappings:
product:
type: yml
dir: %kernel.root_dir%/../src/Cerad/Bundle/Test01Bundle/Product
prefix: CeradBundleTest01BundleProduct
alias: Product
is_bundle: false
user:
type: yml
dir: %kernel.root_dir%/../src/Cerad/Bundle/Test01Bundle/User
prefix: CeradBundleTest01BundleUser
alias: User
is_bundle: false
不要担心 is_bundle: 错误条目.实体仍然可以捆绑在一起.教义不在乎.如果您想知道,别名参数可以让您执行以下操作:
Don't worry about the is_bundle: false entries. The entities can still live in a bundle. Doctrine does not care. And in case you are wondering, the alias parameter lets you do things like:
$repo = $em->getRepository("Product:Product");
相关文章