Каков стандартный способ использования сущностей пакета в symfony? - PullRequest
1 голос
/ 05 мая 2020

Я пытался научиться использовать пакет в symfony, но столкнулся с некоторыми проблемами, когда объекты пакета появлялись в моей базе данных. Наконец-то я заставил его работать, добавив пару последних строк в свой файл doctrine .yaml. Однако по какой-то причине кажется маловероятным, что это правильный способ go об этом, учитывая, что он работает только в том случае, если я установил для свойства is_bundle значение false, хотя, вероятно, это должно быть истиной, учитывая, что это объект из пакета.

Как правильно отобразить этот объект в моей базе данных?

Мой doctrine файл:

doctrine:
  dbal:
    default_connection: default
    connections:
      default:
        # configure these for your database server
        url: '%env(DATABASE_URL)%'
        driver: 'pdo_mysql'
        server_version: '5.7'
        charset: utf8mb4
        unix_socket: '/Applications/MAMP/tmp/mysql/mysql.sock'
        default_table_options:
          charset: utf8mb4
          collate: utf8mb4_unicode_ci

  orm:
    default_entity_manager: default
    entity_managers:
      default:
        connection: default
        mappings:
          default:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/src/Entity'
            prefix: 'App\Entity'
            alias: default
          ch_cookie_consent_bundle:
            is_bundle: false
            type: annotation
            dir: '%kernel.project_dir%/vendor/connectholland/cookie-consent-bundle/Entity'
            prefix: 'ConnectHolland\CookieConsentBundle\Entity'
            alias: ch_cookie_consent_bundle 

Сам пакет может быть найдено здесь: https://github.com/ConnectHolland/cookie-consent-bundle

1 Ответ

0 голосов
/ 06 мая 2020

Флаг is_bundle указывает расширению doctrine соответствие ключа конфигурации имени пакета.

В вашем случае конфигурация должна быть

  orm:
    mappings:
      default:
        ...
      CHCookieConsentBundle: # This should match the bundle name (in %kernel.bundles%)
        is_bundle: true
        alias: ch_cookie_consent_bundle

Все остальные конфигурации ключи не являются обязательными и определяются автоматически.

...