Symfony - Создание или редактирование формы в зависимости от нажатой кнопки - PullRequest
0 голосов
/ 17 сентября 2018

Я создаю форму, которая при сохранении обновляет текущую и любые связанные сущности (просто!), Когда я ее редактирую, у меня есть две кнопки, «Обновить существующую версию» или 'Создать Новая версия '

Если я нажимаю на создание новой версии, то в основном необходимо создать все в форме как совершенно новую версию (копию существующей, но с целым числом версии, увеличенным на единицу), тогда как если я нажму обновить, она будет рада просто обновить существующий субъект.

В Symfony форма создается с $this->createForm(<class>, <data>), и если я передам новую сущность класса данным, она создаст новую, а если я передам существующую сущность, она обновится.

Однако я не знаю до тех пор, пока после того, как обработал запрос, предназначена ли форма для новой версии или для обновления текущей версии, как это происходит с кнопки, это означает, что форма уже создана и инициализирована.

Если это новая версия, мне также нужно каким-то образом обновить все связанные объекты до новой версии.

Я думаю, это должно быть относительно просто, и я упускаю что-то очевидное.

Я использую коллекцию форм Symfony для генерации формы.

Может кто-нибудь помочь?

Спасибо

Кевин

1 Ответ

0 голосов
/ 18 сентября 2018

На всякий случай, если люди сталкиваются с этим.

Я просто проверил в обработке формы, для чего была нажата кнопка, затем просто клонировал объект.

Затем я создал функцию __clone внутрисущность, которая имела дело со связями, которые у нее были (в основном перебирала связанные сущности, клонировала их и заменяла родителя на $ this).

Все, все остальное работало как обычно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...