如何在捆绑包之外配置多个 orm 映射原则
Posted
技术标签:
【中文标题】如何在捆绑包之外配置多个 orm 映射原则【英文标题】:How to configure multiple orm mappings doctrine outside the bundle 【发布时间】:2019-10-21 15:20:30 【问题描述】:我的项目有两个文件夹,一个是 symfony,另一个是我的项目
我的要求是我有一个类(不是实体)SuperClass
用于我扩展到实体文件的相同属性,因此我还需要在映射中定义类
我学说他们说映射:
# An array of mappings, which may be a bundle name or something else
mapping_name:
mapping: true
type: ~
dir: ~
alias: ~
prefix: ~
is_bundle: ~
如何定义多个我做了但不工作
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
mappings:
# not working one time only one mapping working i need to both will work
Project\Component\User:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/orm-mappings/doctrine'
prefix: 'Project\Component\User'
alias: Project\Component\User
mapping: true
# this is working
Project/User:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/orm-mappings/doctrine'
prefix: 'Project/User'
alias: Project/User
mapping: true
我的SuperClass
映射仅不起作用。如果我将我的文件移动到这个 Project/User
中,那么它们会正确绑定并正常工作,但我需要将文件分开
【问题讨论】:
您在每个配置中使用“\”和“/”。也许是这样? 改进格式 【参考方案1】:我已经创建了一个用于映射SuperClass
的文件夹,所以现在我有两个目录和两个不同的命名空间
mappings:
Project\Component\User:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/orm-mappings/mapping-superclass'
prefix: 'Project\Component\User'
alias: Project\Component\User
mapping: true
Project\User:
is_bundle: false
type: xml
dir: '%kernel.project_dir%/config/orm-mappings/doctrine'
prefix: 'Project\User'
alias: Project\User
mapping: true
这将为您提供一个用于数据库映射的命名空间 Project\User
和 SuperClass
命名空间是 Project\Component\User
【讨论】:
对于匆忙阅读本文并试图找出区别的人:请注意,问题在于两个映射都指向同一个目录(请参阅目录配置)。改变它,你就会解决问题。以上是关于如何在捆绑包之外配置多个 orm 映射原则的主要内容,如果未能解决你的问题,请参考以下文章
如何在可执行文件附近生成 dsym 文件,而不是在捆绑包之外,最好没有安装后脚本?
在身份映射之外强制使用 sqlalchemy ORM get()