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