如何使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>中。 这样,“他们仍然在那里”(通过一切手段正常处理),但用户不可见。

希望这可以帮助…

  • 如何从控制器中获取Symfony2中的Web目录的服务器path?
  • 如何以编程方式login/authentication用户?
  • 是否有可能限制只有AJAX的路线?
  • 在ajax提交上禁用symfony 2 csrf令牌保护
  • 内存泄漏Symfony2 Doctrine2 /超出内存限制
  • Docker“无效的装载路径app / symfony”必须是绝对的
  • 方法名称必须以findBy或findOneBy开头。 未定义的方法Symfony?
  • 如何在Symfony2中设置表单字段的默认值?
  • 为什么更新composer php的依赖关系是如此之慢?
  • 在模板中访问已login的用户
  • Twig:防止parsing客户端模板