0

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

なぜそれができるのでしょうか?

4

1 に答える 1

3

エラーは次のとおりです。

return $this->redirect(
    $this->generateUrl('AnotatzaileaAnotatzaileaBundle_FAQ'),
    array('proba' => $form->get('MarkInterpretazioak'))
);

よりわかりやすいように整形しました。render()に渡すのではなく、(HTTP ステータス コード)の 2 番目のパラメーターとして配列を渡していgenerateUrl()ます。

于 2012-05-15T16:56:04.193 に答える