2015-08-03 200 views
0

所以......基本上它。我有一個表單類,然後我渲染,但總是返回csrf錯誤。SYMFONY2 - CSRF令牌無效Allwais

Form類:

class FormTest extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder 
      ->add(
       'urlTo', 
       'url' 
      ) 
     ->add('submit', 'submit'); 
    } 

public function getName() 
{ 
    return ''; 
} 

}

在控制器:

... 
$form = $this->createForm(new FormTest()); 

$form->handleRequest($request); 

    if ($form->isSubmitted()) { 
     if ($form->isValid()) { 
      echo 1; die; 
     } 
    } 

當我看到 「isSubmited」,並嘗試 「的getData」 我剛剛得到的URL字段中,令牌不是,我不知道它是否正確。

查看:

{{ form_start(form) }} 

       {{ form_widget(
       form.linkTo, 
       { 
        'attr' : { 
        'class' : 'form-control col-xs-12', 
        'placeholder' : 'url here' 
       } 
       } 
       ) }} 

       {{ form_errors(form) }} 

       {{ form_widget(
       form.submit, 
       { 
        'label' : ' START', 
        'attr' : { 
        'class' : 'btn glyphicon glyphicon-send' 
       } 
       } 
       ) }} 

       {{ form_end(form) }} 

就是這樣,ALLWAYS返回CSRF令牌無效。

好了,問題是標識並不是存儲在會話...但我不知道爲什麼

+0

嘗試添加\t''到樹枝模板 – timhc22

+0

可能的重複[Symfony的2當使用沒有類的表單時添加CSRF令牌](http://stackoverflow.com/questions/16136188/symfony-2-add-csrf-token-when-using-a-form-without-a-class) – timhc22

+0

這不是同一個問題。這是一個會議問題。 –

回答

0

您需要使用form_rest(form)這使得剩餘的字段包括令牌或者你需要使用form_row(form._token)來手動渲染令牌。

form_end(form)基本上只是</form>

+0

你有一個帶'''urlTo'''的表單和一個帶'''form.linkToDownload'''的模板。這對我來說並不合適。 –

+0

啊是的,但它是相同的領域,我改變了它,但我忘了改變他所有的代碼,對不起 –