0

こんにちは皆さん、フォームにこの問題があります

The CSRF token is invalid. Please try to resubmit the form

そのようなビューでフォームを表示します

  <form id="target" action="#" data-idea="{{idea}}" method="post" {{ form_enctype(form) }}>
        {{ form_widget(form) }}
        </br>
        </br>
        <input type="submit" value="add comment"/>
    </form>

私のコントローラーにはこれがあります

パブリック関数 addCommentAction(){

        $ideaId= $_POST['idea'];
        $coment= new Comentario();
        $form= $this->createForm(new ComentarioFormType(), $coment);
        $request= $this->getRequest();

        if($request->getMethod() == 'POST'){
            $form->bindRequest($request);

            if ($form->isValid()){
                $em= $this->getDoctrine()->getEntityManager();
                $coment->setIdea($ideaId);
                $em->persist($coment);
                $em->flush();
            }
...
}

にエラーがあります($form->isValid())。コードをデバッグすると、これを尋ねると isValid 関数が false を返しif ($this->hasErrors())、エラーが表示されます。

controller の行を消去する if ($form->isValid())と、フィールドの説明が null であるため、関数はフォームを保持しません。

これが私のフォームです

public function buildForm( FormBuilder $builder, array $options)
{
    $builder->add('descripcion', 'textarea');

}

public  function getDefaultOptions( array $options){
    return array('data_class'=> 'ComentBundle\Entity\Coment');
}

public function getName()
{
    return 'coment';
}

何か案が?

4

1 に答える 1

1

これを試して

    public function addCommentAction(Request $request){
    $ideaId= $_POST['idea'];
    $coment= new Comentario();
    $form= $this->createForm(new ComentarioFormType(), $coment);


    if($request->getMethod() == 'POST'){
        $form->bindRequest($request);

        if ($form->isValid()){
            $em= $this->getDoctrine()->getEntityManager();
            $coment->setIdea($ideaId);
            $em->persist($coment);
            $em->flush();
        }
   ...
   }

$request は Action 宣言ステートメントからのものであることに注意してください

これが役立つことを願っています

于 2012-11-12T11:23:07.040 に答える