2

建议根据您的类创建表单类的文档,以便可以重用表单。它还向您展示了如何独立于表单类呈现不同的字段,而不是使用{{ form_widget() }}.

当我正在构建一个简单的注册页面时,我只想显示用户表单类中的一些字段,因此我将它们呈现为这样{{ form_widget(form.email) }}

然而,因为我独立渲染字段,所以不会渲染隐藏的表单字段“CFTOKEN”,这是 symfony 框架所要求的。所以错误:The CSRF token is invalid. Please try to resubmit the form.

文档中没有提到这一点或如何独立呈现隐藏的表单字段......

4

3 回答 3

6
<div style="display: none;">{{ form_rest(form) }}</div>

会让你开始。一旦你熟悉了 S2,你会发现有很多选择。

例如,将参数传递给 UserFormType 的构造函数可以轻松控制创建哪些字段。

于 2013-01-15T22:15:35.317 回答
4

这是唯一的方法真的..

{{ form_widget(form._token) }}

Symfony 文档如何向您展示如何独立呈现每个表单字段,然后说您必须使用它{{ form_rest(form) }}来生成其余的必需字段,例如 CFtoken,因为它还呈现了您故意避免渲染的表单类中的所有表单字段,这非常令人惊讶独立完成它们,而不是仅仅使用 {{ form_widget() }}

GRRR

于 2013-01-15T20:47:29.583 回答
2

使用以下方式渲染其余字段:{{ form_rest(form) }}

http://symfony.com/doc/2.0/reference/forms/twig_reference.html#form-rest-view-variables

于 2013-01-15T20:35:22.083 回答