Twig 显示额外字段

Twig shows extra fields

我有一个简单的表格,看起来像这样

.......
$builder  
    ->add('name', 'text')
    ->add('email', 'text'
    ->add('save', 'submit')
    ->getForm();

我想要的是只渲染名称字段

{{ form_start(form, {'attr': {'role': 'form', 'novalidate' : 'novalidate'} }) }}

{{ form_label(form.name) }}
{{ form_widget(form.name, { 'attr': {'class': 'form-control'} }) }}
{{ form_errors(name.name, { 'attr': {'class': 'form-control'} }) }}

{{ form_end(form)

结果,我得到了包含姓名和电子邮件字段的页面。我做错了什么以及如何防止呈现电子邮件字段?

如果您的字段不是必需的,您可以这样做:

{{ form_label(form.email, null, {'label_attr': {'class':'hidden'}}) }}
{{ form_widget(form.email, { 'attr': {'class': 'form-control hidden'} }) }}
{{ form_errors(name.email, { 'attr': {'class': 'form-control hidden'} }) }}

希望对您有所帮助。

根据doc,如果不想渲染未渲染的字段,可以使用:

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

希望对您有所帮助