我部署了一个Symfony2应用程序,但所有表单都有空的csrf标记。这个html来自firebug。如您所见,标记已正确呈现,但未分配任何值。
<input type="hidden" value="" name="category[_token]" id="category__token">
在我的控制器中:
$form = $this->createForm(new CategoryForm(), new Category());
$form->handleRequest($request);
if ($form->isValid()) {
(...)
}
在模板中,表单位于bootstrap 3模式内。
{{ form_start(form) }}
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Voeg een tariefplan toe</h4>
</div>
<div class="modal-body">
<div class="form-group">
{{ form_label(form.name) }}
{{ form_widget(form.name) }}
</div>
<div class="form-group">
{{ form_label(form.parent) }}
{{ form_widget(form.parent, {'attr':{ 'class': 'form-control' }}) }}
</div>
<div class="form-group">
{{ form_label(form.sizes) }}
{{ form_widget(form.sizes, {'attr':{ 'class': 'form-control' }}) }}
</div>
<div class="form-group">
{{ form_label(form.description) }}
{{ form_widget(form.description, {'attr':{ 'class': 'form-control' }}) }}
</div>
{{ form_widget(form._token) }}
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Annuleren</button>
{{ form_widget(form.save, {'attr':{ 'class': 'btn btn-primary' }}) }}
</div>
</div>
</div>
{{ form_end(form) }}
我还为CategoryForm类创建了一个要点:http://goo.gl/6NWTkB。
有谁知道我在这里失踪了什么?
答案 0 :(得分:0)
您必须提供以下值:
<input type="hidden" value={{ csrf_token('category') }}"" name="category[_token]" id="category__token">
答案 1 :(得分:0)
一些想法:
json.loads(tweet)
应输出您的令牌,因此无需拥有:{{ form_end(form) }}
。
如果你有一个非常大的表单,php可能会截断你的请求变量。请查看{{ form_widget(form._token) }}
中的max_input_vars
。默认值是1000我相信。