Как сделать form_rest () скрытыми полями в Symfony2 / Twig? - PullRequest
4 голосов
/ 08 марта 2012

У меня есть класс 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>

Ответы [ 4 ]

3 голосов
/ 08 марта 2012

Вы должны сделать это в вашей функции buildForm, внутри "FormController".Достаточно просто добавить «скрытый» при добавлении поля.

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('name');
    $builder->add('email', 'email');
    $builder->add('subject');
    $builder->add('anyone', 'hidden');
}
3 голосов
/ 26 ноября 2014

Также вы можете установить все свои ненужные поля, как показано в шаблоне ветки:

<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 голосов
/ 08 марта 2012

form_rest () отображает все неотрисованные поля из вашей формы. Он просто отображает их такими, какие они есть, поэтому, если вы хотите отобразить оставшиеся поля как «скрытые», вам просто нужно определить их как «скрытые» в вашей форме!

1 голос
/ 16 января 2017
{{ form_end(form, {'render_rest': false}) }}

Это из официальной документации (v3.0) , так что это, пожалуй, лучшая практика.

...