Как расширить сущность Symfony в связке - PullRequest
0 голосов
/ 04 ноября 2019

Можно ли как-нибудь расширить сущность Symfony в другом пакете, используя @DiscriminatorMap, не указывая его заранее?

BundleA

  • Имееткласс AbstractQueueItem, который является MappedSuperclass для
  • Event, который расширен на
  • CreateEvent и DeleteEvent как Single Table Inheritene или Class Table Inheritence

BundleB

  • Как добавить новое событие (например, UpdateEvent) в Event -иерархия без модификаций BundleA?

1 Ответ

1 голос
/ 06 ноября 2019

Вы можете попытаться разрешить доктрине автоматически сгенерировать карту дискриминатора.
Из последней маркированной точки в этого раздела документов :

Если карта дискриминатора не установленапри условии, что карта генерируется автоматически. Автоматически сгенерированная карта дискриминатора содержит краткое имя каждого класса в нижнем регистре в качестве ключа. Поэтому вы должны:

  1. Пропустить объявление @DiscriminatorMap в BundleA.
  2. Расширить сущность как обычную в BundleB (убедившись, что короткое имя каждого класса уникально).
  3. Обновление схемы базы данных.

РЕДАКТИРОВАНИЕ
Как указано в комментариях ju_, это решение, очевидно, не будет работать с Doctrine ORM 3.0, но все равно должен быть действителен для версий 2.5 - 2.7

...