Форма Symfony4 с классом TableInheritance

У меня есть 3 разных типа членов, поэтому я использую наследование таблиц. Итак, у меня есть суперкласс "Member", а затем для простоты "MemberA", "MemberB", "MemberC". Эти классы наследуют большинство своих полей от класса "Member" с несколькими дополнительными элементами.

Я пытаюсь создать одну форму с первым полем "Тип элемента", где MemberA, B и C будут параметрами, и в зависимости от того, какой из них выбран, будет соответственно изменяться форма. Я чувствую, что динамические формы, как объяснено в документации Symfony, будут работать, но первая проблема, с которой я сталкиваюсь, это какой объект отправить конструктору формы. (Член?, Массив ()?). Затем я предполагаю, что моя опция "data_class" будет изначально установлена ​​на "Member", и когда пользователь изменил выпадающий список на другой тип, смогу ли я динамически изменить "data_class"? Также, если бы я первоначально отправил объект типа Member, форма автоматически трансформировала бы его в дочерний тип (т. Е. MemberA) на основе класса данных, или мне пришлось бы вручную преобразовывать его в прослушивателе событий формы.

У меня еще не написано много кода, так что это скорее вопрос теории.

Еще один вариант, который я изучил, был этот пост. Тем не менее, если пользователь отправляет форму, содержащую ошибку, страница будет перерисована с использованием только начального поля выбора, возвращаемого к "Выбрать тип". Поскольку это поле на самом деле не является частью какой-либо дочерней формы, поэтому оно фактически не передается при нажатии кнопки отправки, поэтому я не вижу способа автоматически повторно отобразить правильную форму, чтобы пользователь не нуждался в ней повторно выбрать тип, чтобы увидеть ошибки. Теперь, когда я пишу это, я думаю, что я мог видеть, какая из 3 форм была отправлена, и установить поле "тип" обратно на то, которое сопоставляется с отправленной формой, но я чувствую, что этот способ является своего рода хакерским и должен быть в состоянии сделать с динамическими формами.

0 ответов

Другие вопросы по тегам