2012-03-08 37 views
4

我有一个包含许多字段的Form类。我想渲染其中的几个,并将其隐藏起来。这怎么可能 ?如何渲染form_rest()作为Symfony2/Twig中的隐藏字段?

我想做点像{{ 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> 

回答

3

你必须在你的buildForm函数里面的“FormController”中做到这一点。只需在添加字段时添加“隐藏”就足够了。

public function buildForm(FormBuilder $builder, array $options) 
{ 
    $builder->add('name'); 
    $builder->add('email', 'email'); 
    $builder->add('subject'); 
    $builder->add('anyone', 'hidden'); 
} 
+0

和PéCé:你们都是对的,我意识到我将不得不创建两个表单类,每个表单类都是一个表单。 – Creasixtine 2012-03-09 11:31:11

2

form_rest()呈现从表单的所有非渲染字段。它只是渲染它们,所以如果你想渲染剩余的字段为'隐藏',你只需要将它们定义为'隐藏'在你的窗体中!

+0

感谢您的回答! – Creasixtine 2012-03-09 11:31:28

2

而且你可以通过设置你的所有不必要的字段作为您的树枝模板呈现:

<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>