Как настроить доктрину множественных отображений orm вне пакета - PullRequest
0 голосов
/ 06 июня 2019

У меня есть проект с двумя папками, одна - symfony, а другая - мой проект. Я расширяю symfony до папки проекта и устанавливаю сопоставления из папки проекта, что мне нужно. Мне нужно несколько сопоставлений для доктрины orm

мое требование: у меня есть класс (не сущность) 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 голосов
/ 06 июня 2019

Работал У меня есть еще одна папка для отображения SuperClass, так что теперь у меня есть два dir и два разных пространства имен

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

...