如何呈现树枝中的CSRFinput?

我知道有通常的方式来渲染CSRF标记隐藏inputform_rest ,但有没有办法只呈现CSRFinput本身? 我已经覆盖主题中的{% block field_widget %}来渲染一段附加文本。 但是,由于CSRF标记也在input字段中呈现,并且我得到了一段文本,因此不需要在隐藏字段旁边。 所以我想单独渲染一个参数,告诉它不要渲染这个文本。

你可以用{{ form_widget(formView._token) }}

不使用表单对象,你可以直接渲染令牌:

 <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"> 

“身份validation”是您的表单名称。

在Symfony 2.x和3.x中工作

或者你可以简单地使用这个:

 {{ form_row(form._token) }} 

这将根据您使用的表单types自动生成正确的隐藏HTML元素,即正确的HTML结构和字段名称。

我需要在Twig中渲染csrfinput,这样我才能将它用于删除操作。 使用{{ csrf_token('authenticate') }}根据@ YuryPliashkou的答案给我不正确的标记(一个只对login有效!)

对我来说有效的是{{ csrf_token('form') }} ,它给了我正确的csrf标记,然后通过ajax传递给我的控制器。

 <span id="csrf_token" data-token="{{ csrf_token('form') }}"></span> // my ajax call $.ajax({ url: localhost/admin/product/4545, // 4545->id of the item to be deleted type: 'POST', data: { "_method": "DELETE", "form[_token]": $("#csrf_token").data("token") // passed csrf token here }, success: function(result) { // Do something } }); 

validation了它在Symfony 3.x上的工作

参考

没有find解决scheme为我工作,发现和testing,并为我的Simfony3价值=“{{_token}}”的例子

  <form name="form" method="post" action="{{ path('blog_show', { 'id': blog.id }) }}"> <input name="_method" value="DELETE" type="hidden"> <input class="btn btn-danger" value="Delete" type="submit"> <input id="form__token" name="form[_token]" value="{{ _token }}" type="hidden"> </form> 

关于scrf的更多信息可以在这里查看: 在Symfony2中手动创build表单,但仍然使用CSRF和isValid()函数