Eli*_*son 8 php entity entity-framework symfony doctrine-orm
我在我的symfony 2.3应用程序中使用了doctrine.我想使用像这样的文件夹结构
/MyBundleName/User/User.php
Run Code Online (Sandbox Code Playgroud)
对于我的实体.
题:
反正我是否可以直接将doctrine ORM映射到使用显式目录而不是默认为Entity我的Bundle目录?
我想保留所有相关文件在各自的目录下,如ProductProvider在
/MyBundleName/Product/ProductProvider.php
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
Cer*_*rad 14
只是对@ Imanol的正确答案进行跟进,可以将您的实体放在一个实体管理器下的多个目录中:
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: Cerad\Bundle\Test01Bundle\Product
alias: Product
is_bundle: false
user:
type: yml
dir: %kernel.root_dir%/../src/Cerad/Bundle/Test01Bundle/User
prefix: Cerad\Bundle\Test01Bundle\User
alias: User
is_bundle: false
Run Code Online (Sandbox Code Playgroud)
不要担心is_bundle:false条目.实体仍然可以捆绑在一起.学说不关心.如果您想知道,alias参数可以让您执行以下操作:
$repo = $em->getRepository("Product:Product");
Run Code Online (Sandbox Code Playgroud)
小智 4
你可以告诉 Doctrine 你的实体所在的目录
doctrine:
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: false
mappings:
name:
type: php
dir: %kernel.root_dir%/../src/Company/CartoDBBundle/Tests/CartoDB/Entity
Run Code Online (Sandbox Code Playgroud)
这里有完整的Doctrine 配置文档
几天前我提出了类似的问题,您可以在那里阅读雪松给我的完整答案
类似的帖子