如何在捆绑包外配置多个Orm映射原则

时间:2019-06-06 06:25:55

标签: php symfony orm doctrine mapping

我的项目有两个文件夹,一个是symfony,另一个是我的项目,我将symfony扩展到项目文件夹,并从项目文件夹设置映射,这是我需要的,我需要针对教义orm的多个映射。

我的requirememt是我有一个类(不是实体)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 个答案:

答案 0 :(得分:0)

工作了,我又创建了一个用于映射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

相关问题