Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to render form_rest() as hidden fields in Symfony2/Twig?

I have a Form class that contains many fields. I would like to render few of them and pass the left ones as hidden. How is this possible ?

I would like to do something like {{ form_rest(form, {'display': 'hidden'}) }} or <div display="hidden">{{ form_rest(form) }}</div>.

Example :

<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>
like image 847
Creasixtine Avatar asked Jan 18 '23 06:01

Creasixtine


2 Answers

You have to do it in you buildForm function, inside the "FormController". Just adding 'hidden' when you add the field is enough.

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('name');
    $builder->add('email', 'email');
    $builder->add('subject');
    $builder->add('anyone', 'hidden');
}
like image 52
unairoldan Avatar answered Jan 25 '23 14:01

unairoldan


Also you may set all your unneeded fields as rendered in your twig template:

<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>
like image 22
ksn135 Avatar answered Jan 25 '23 14:01

ksn135