У меня есть форма, встроенная в модал, я использовал встроенный контроллер, чтобы справиться с этим.
Это мой код:
Контроллер:
public function affectProduitsAction(Pack $pack)
{
$request = $this->get('request_stack')->getMasterRequest();
$form = $this->createForm(PackAffectProduitType::class, $pack);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) { /*success*/
}
return $this->render('pack/affect_produits.html.twig', [
'packForm' => $form->createView(),
]);
}
Макет: рендеринг встроенного контроллера:
<div class="button-add">
<a class="btn btn-sm btn-primary btn-upper" data-target="#modalAffectProduit" data-toggle="modal">
<i class="os-icon os-icon-ui-22"></i>
<span>Affecter des produits</span>
</a>
</div>
{{ render(controller(
'AppBundle:Pack:affectProduits',
{'pack': pack }
)) }}
Модал: отрисовывается от встроенного контроллера:
<div aria-hidden="true" aria-labelledby="exampleModalLabel" class="modal fade" id="modalAffectProduit" role="dialog" tabindex="-1">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">
Affecter des produits
</h5>
<button aria-label="Close" class="close" data-dismiss="modal" type="button"><span aria-hidden="true"> ×</span></button>
</div>
{{ form_start(packForm, {'action':
{# the problem is here I don't know how call the embedded controller #}
}) }}
<div class="modal-body">
......
</div>
<div class="modal-footer">
<button class="btn btn-secondary" data-dismiss="modal" type="button"> Annuler</button>
<button class="btn btn-primary" type="button"> Affecter</button>
</div>
{{ form_end(packForm) }}
</div>
</div>
Проблема в том, что когда я нажимал кнопку отправки, ничего не происходило. Я хочу вызвать встроенный контроллер из действия формы, но не знаю как, так как у него нет маршрутизации?