2012-03-08 59 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>