#doctrine-orm #symfony #dql
#doctrine-orm #symfony #dql
Вопрос:
У меня есть модель с наследованием.
Абстрактный класс X,
С подклассами A, B и C…
В моей форме пользователи должны иметь возможность выбирать, какой тип X применяется, в зависимости от этого выбора в форме будут отображаться A, B или C…
Как мне спросить X, какие типы у него есть?
Я думал, используя distinct select в дискриминаторе, но не справился..
Есть идеи?
Было бы нормально, если бы я мог выполнить собственный запрос, чтобы просто добавить результирующий массив к выбранному типу поля..
Ответ №1:
Разве вы не можете просто это жестко запрограммировать? На самом деле, довольно странно, что абстрактный класс знает своих точных дочерних элементов.
Вы можете вручную проверить свои объекты и их аннотации, чтобы построить дерево наследования в вашем пакете. Но я не думаю, что это хорошая идея.
Комментарии:
1. Я знаю, что это странное поведение, но в данном случае мне нужно знать… А при жестком кодировании у меня есть дублирующее администрирование….
Ответ №2:
Просто сохраните параметры где-нибудь. Либо жестко закодируйте их, как сказал FractalizeR, либо поместите их в базу данных или в файл.
Абстрактный класс не должен знать о своих подклассах