2012-03-08 7 views
4

私は多くのフィールドを含むFormクラスを持っています。私はそれらのうちのいくつかをレンダリングし、左のものを隠して渡したいと思います。これはどのように可能ですか?symfony2/Twigでform_rest()を隠しフィールドとしてレンダリングするには?

私は{{ 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

"FormController"内のbuildForm関数で行う必要があります。フィールドを追加するときに「隠し」を追加するだけで十分です。あなたの小枝テンプレートでレンダリングとして

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

とPéCé:あなたはどちらも正しいです。私は、それぞれが1つのフォーム用に2つのフォームクラスを作成する必要があることを認識しています。 – Creasixtine

2

form_restは、()フォームからすべての非レンダリングされたフィールドをレンダリングします。残りのフィールドを '非表示'としてレンダリングする場合は、フォーム内で '非表示'として定義するだけです。

+0

答えをありがとう! – Creasixtine

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> 
0
{{ form_end(form, {'render_rest': false}) }} 

をそれはofficial documentation (v3.0)からですので、それは私が推測するほとんどのベストプラクティスです。

関連する問題