1
我有一个嵌入式控制器,如Symfony的网站所述。 http://symfony.com/doc/current/templating/embedding_controllers.htmlsymfony3嵌入式控制器的形式
唯一的区别是我的控制器有一个窗体。所有都呈现正确,但一旦表单被提交,请求总是空的。由于请求是空的,$ form-> isValid()和$ form-> isSubmitted()总是返回false。
请在下面找到我的代码:
嫩枝:
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
控制器:
public function myEmbeddedAction(Request $request)
{
$template ="myTwig.html.twig";
$supportTicket = new SupportTicket();
$form = $this->createForm('AppBundle\Form\SupportTicketType', $supportTicket);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
// success
}
return $this->render($template, array(
'supportTicket' => $supportTicket,
'form' => $form->createView()
));
}
嵌入在我的布局控制器:
{{ render(controller('AppBundle:Default:myEmbedded')) }}
的请求嵌入式行为离子总是具有相同的值:
{“attributes”:{},“request”:{},“query”:{},“server”:{},“files”:{}, cookies“:{},”headers“:{}}
但是,如果我直接通过URL访问嵌入式控制器并填写表单,它就可以工作。我怎样才能让表单在我的嵌入式控制器中工作?
只是为了笑话尝试$ request = $ this-> get('request_stack') - > getMasterRequest()。使用嵌入式控制器时,实际上会收到一个子请求。我会认为子请求仍然具有主请求属性,但可能不是。 – Cerad
是的,它的工作。非常感谢。你可以添加一个答案,以便我可以接受它吗? – Sami