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())并显示错误。

如果我 if ($form->isValid())在我的控制器中擦除该行,该函数不会保留表单,因为字段描述为空。

这是我的表格

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 declare 语句

我希望这个能帮上忙

于 2012-11-12T11:23:07.040 回答