如何使form_rest()不显示与Symfony2的字段?

我已经开始使用Symfony2了,但是我遇到了一些问题。 我想手工渲染字段,但它不起作用,因为我的字段还与我的form_rest()函数一起显示,所以我有两个相同的字段。

这是我的代码:

 <div> {{ form_errors(form.contenu) }} <textarea id="{{ form.contenu.vars.id }}" name="{{ form.contenu.vars.full_name }}">{{ form.contenu.vars.value }}</textarea> </div> 

而在表格的最后,我必须这样做:

 {{ form_rest(form) }} 

但它显示“contenu”字段:(

你有什么问题的想法?

4 Solutions collect form web for “如何使form_rest()不显示与Symfony2的字段?”

另一种select是明确地标记字段呈现:

 {% do form.contenu.setRendered %} 

{{ form_rest(form) }}在渲染每个字段“手动”后最后。 如果你使用它作为CSRF令牌,你总是可以使用:

 {# Token CSRF #} {{ form_widget(form._token) }} 

另一个在我看来不那么hacky的方式来做到这一点:

 {{ form_end(form, {'render_rest': false}) }} 

这是从官方文档 (V3.0),所以这是我猜的几乎最好的做法

你不想展示一些领域的情况表明devise得很糟糕的forms。 你可以在它的__construct添加一些参数来使它有条件(比如包含/排除一些字段),或者你可以创build单独的Form类(在我看来,这有点矫枉过正)。

几个月前,当用户插入/更新logging的时候,表单有所不同。 这是这样的:

 ... public function __construct($isUpdateForm){ $this->isUpdateForm= $isUpdateForm; } public function buildForm(FormBuilder $builder, array $options){ .... $builder->add('some_filed', 'text', ..... ); if ( $this->isUpdateForm ){ $builder->add(.....); } .... } .... 

如果由于某些原因,你不能重构窗体类,你仍然可以显示不需要的字段,但将其包装到具有CSS display:none属性的<div>中。 这样,“他们仍然在那里”(通过一切手段正常处理),但用户不可见。

希望这可以帮助…

  • 如何以编程方式login/authentication用户?
  • 使用Symfony2获取Twig模板中的环境名称
  • Symfony2:获取控制器所有路由的列表
  • 在Doctrine2查询中使用限制和偏移
  • 在Symfony 2的YMLconfiguration文件中,这意味着什么?
  • PHP Websocket在testing中validation用户(传递会话cookie)
  • 在Symfony2中访问与Bundle相关的文件
  • Symfony2,如何使表单标签类/ attr不同于其input?
  • 如何将@request注入到服务中?
  • 在Twigpath中添加多个参数
  • Symfony2 - 强制文件下载