Отображение доктрины не распознается с более сложной иерархией

#php #doctrine-orm #doctrine #php-8

Вопрос:

Учитывая следующую иерархию сущностей:

 // in main project src/Entity #[ORMEntity] class Article extends AbstractArticle  
 // in bundle src/Entity/Content #[ORMMappedSuperclass] abstract class AbstractArticle extends AbstractEntity  
 // in bundle src/Entity #[ORMMappedSuperclass] abstract class AbstractEntity implements NormalizableInterface, EntityInterface  

И эта конфигурация:

 orm:  auto_generate_proxy_classes: true  naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware  auto_mapping: true  mappings:  App:  is_bundle: false  type: annotation  dir: '%kernel.project_dir%/src/Entity'  prefix: 'AppEntity'  alias: App  XyBundle:  is_bundle: true  type: annotation  dir: 'Entity'  prefix: 'XyBundleEntity'  alias: Xy  

Я получаю эту ошибку:

Class "AppEntityArticle" sub class of "XyBundleEntityContentAbstractArticle" is not a valid entity or mapped super class.

В будущем я хочу создать экземпляр одной или нескольких различных статей абстрактной статьи. Тем не менее, эта конфигурация работает тогда и только тогда, когда я помещаю #[ORMEntity] в класс AbstractArticle.

Что я здесь делаю не так?

Ответ №1:

Я отследил проблему до такой степени, что мне пришлось изменить тип сопоставления на attribute вместо annotation . Теперь это работает.