Symfony From CollectionType, добавить новый элемент в зависимости от выбора пользователя
дорогие друзья. Мне нужно динамически добавлять элемент в зависимости от выбора пользователя. Итак, есть форма с CollectionType. После рендринга формы, пользователь открывает модальное окно с типами модели которая связанна через параметр entry_type|CollectionType. Я лишь додумался до того то в момент выбора типа отправлять всю форму и выбранный тип в контроллер через POST запрос и добавить элемент как показано ниже
switch ($action) {
case 'addBlock':
$type = $request->get('link')['bock_type'];
$type = $this->getDoctrine()->getRepository(BlockType::class)->find($type);
$new_block = new Block();
$new_block->setType($type);
$link_page->addBlock($new_block);
$form = $this->createForm(LinkType::class, $link_page);
$form->handleRequest($request);
return new JsonResponse(['view'=>$this->renderView('app/profile/prototype/blocks_form.html.twig',['form'=>$form->createView()])]);
break;
}
Но возникла проблема из за строчки
$form->handleRequest($request);
добавленный элемент не учитывается, а если убрать эту строчку вовсе, то добавится лишь 1 элемент в CollectionType. Я понимаю что можно при каждом добавлении модели Block сохранять сущность, но это немного не то что мне нужно.
Подскажите дорогие обыватели как можно решить эту задачу, может вообще каким-то другим путем.
Ответы (1 шт):
В документации есть раздел о динамическом изменении формы в зависимости от выбора.
symfony.com/doc/current/form/dynamic_form_modification.html