Доктрина2 и наследование

#doctrine-orm #symfony #dql

#doctrine-orm #symfony #dql

Вопрос:

У меня есть модель с наследованием.

Абстрактный класс X,

С подклассами A, B и C…

В моей форме пользователи должны иметь возможность выбирать, какой тип X применяется, в зависимости от этого выбора в форме будут отображаться A, B или C…

Как мне спросить X, какие типы у него есть?

Я думал, используя distinct select в дискриминаторе, но не справился..

Есть идеи?

Было бы нормально, если бы я мог выполнить собственный запрос, чтобы просто добавить результирующий массив к выбранному типу поля..

Ответ №1:

Разве вы не можете просто это жестко запрограммировать? На самом деле, довольно странно, что абстрактный класс знает своих точных дочерних элементов.

Вы можете вручную проверить свои объекты и их аннотации, чтобы построить дерево наследования в вашем пакете. Но я не думаю, что это хорошая идея.

Комментарии:

1. Я знаю, что это странное поведение, но в данном случае мне нужно знать… А при жестком кодировании у меня есть дублирующее администрирование….

Ответ №2:

Просто сохраните параметры где-нибудь. Либо жестко закодируйте их, как сказал FractalizeR, либо поместите их в базу данных или в файл.

Абстрактный класс не должен знать о своих подклассах