所以......基本上就是这样。我有一个表单类,然后我渲染但总是返回csrf错误。
表格类:
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 :(得分:0)
您需要使用form_rest(form)
来渲染剩余字段,包括令牌,或者您需要使用form_row(form._token)
手动呈现令牌。
form_end(form)
基本上只是</form>