我正在使用Symfony2和twig开发应用程序。我想从模板向控制器提交一个值,该值是使用模板中的Jquery函数设置的。我正在使用表单和隐藏类型字段。这是我的控制器代码:
public function testuaanotatuAction(Request $request)
{
$Interpretatzea = new Interpretatzea();
$Interpretatzea->setMarkagarriaInterpretatua($Markagarria);
$form = $this->createFormBuilder($Interpretatzea)
->add('MarkInterpretazioak', 'hidden')
->getForm();
$Erantzuna = $this->getRequest();
if ($Erantzuna->getMethod() == 'POST')
{
$form->bindRequest($Erantzuna);
if ($form->isValid())
{
return $this->redirect($this->generateUrl('AnotatzaileaAnotatzaileaBundle_FAQ'),
array('proba' => $form->get('MarkInterpretazioak')));
}
}
//Anotatzeko galderaren interfazeari deitu eta azpimarratu beharreko markagarriaren MarkIdent-a pasatu
return $this->render('AnotatzaileaAnotatzaileaBundle:Page:AnotatuInterpretazio.html.twig',
array('form' => $form->createView()));
}
public function FAQAction($proba)
{
return $this->render('AnotatzaileaAnotatzaileaBundle:Page:FAQ.html.twig',array('proba' => $proba));
}
这是模板AnotatuInterpretazio.html.twig的一部分,我使用下一个JQuery函数将值分配给隐藏字段:
<form action="{{ path('AnotatzaileaAnotatzaileaBundle_testuaanotatu') }}" method="post" {{ form_enctype(form) }} class="erreg">
{{ form_widget(form) }}
<input type="submit" value="Egina" />
</form>
<!-- <a href="{{ path('AnotatzaileaAnotatzaileaBundle_testuaanotatu') }}"><button id="Egina_Botoia">Egina</button></a><br /> -->
<script type='text/javascript'>
$("MatchedTag").click(function ()
{
$(this).toggleClass("highlight");
var Erantzuna = this.id;
$('#hiddenval').val('this.id');//Assigning the value
});
</script>
浏览器显示下一个错误:
The HTTP status code "Array" is not valid.
500 Internal Server Error - InvalidArgumentException
知道为什么会这样吗?
答案 0 :(得分:3)
错误在于:
return $this->redirect(
$this->generateUrl('AnotatzaileaAnotatzaileaBundle_FAQ'),
array('proba' => $form->get('MarkInterpretazioak'))
);
我重新格式化它更加明显。您将数组作为render()
的第二个参数(HTTP状态代码)传递,而不是将其传递给generateUrl()
。