我有一个包含许多字段的Form类。我想渲染其中的一些并将左边的那些隐藏起来。这怎么可能?
我想做{{ form_rest(form, {'display': 'hidden'}) }}
或<div display="hidden">{{ form_rest(form) }}</div>
。
示例:
<form action="{{ path('fiche_intervention', {'rreid': rre.rreid}) }}" method="post" {{ form_enctype(form) }}>
{{ form_errors(form) }}
<div class="bloc-input">{{ form_label(form.rredatecommencement, "Date de retrait :") }}
{{ form_widget(form.rredatecommencement) }}
</div>
{# Some other fields... #}
{# ... #}
{# /Some other fields... #}
<div display="hidden">{{ form_rest(form) }}</div>
<input type="submit" />
</form>
答案 0 :(得分:3)
您必须在“FormController”中的buildForm函数中执行此操作。只需在添加字段时添加“隐藏”即可。
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name');
$builder->add('email', 'email');
$builder->add('subject');
$builder->add('anyone', 'hidden');
}
答案 1 :(得分:3)
此外,您可以将所有不需要的字段设置为在树枝模板中呈现:
<form action="{{ path('fiche_intervention', {'rreid': rre.rreid}) }}" method="post" {{ form_enctype(form) }}>
{{ form_errors(form) }}
<div class="bloc-input">{{ form_label(form.rredatecommencement, "Date de retrait :") }}
{{ form_widget(form.rredatecommencement) }}
</div>
{% do form.unneededfield1.setRendered %}
{% do form.unneededfield2.setRendered %}
{% do form.unneededfield3.setRendered %}
<div display="hidden">{{ form_rest(form) }}</div>
<input type="submit" />
</form>
答案 2 :(得分:2)
form_rest()从表单中呈现所有未呈现的字段。它只是按原样呈现它们,所以如果你想将剩余的字段渲染为“隐藏”,你只需要在表单中将它们定义为“隐藏”!
答案 3 :(得分:1)
{{ form_end(form, {'render_rest': false}) }}
它来自official documentation (v3.0)所以我认为这是最好的做法。