Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Symfony2/Twig中将form_rest()呈现为隐藏字段?_Symfony_Twig_Symfony Forms_Hidden Field - Fatal编程技术网

如何在Symfony2/Twig中将form_rest()呈现为隐藏字段?

如何在Symfony2/Twig中将form_rest()呈现为隐藏字段?,symfony,twig,symfony-forms,hidden-field,Symfony,Twig,Symfony Forms,Hidden Field,我有一个表单类,它包含许多字段。我想渲染其中的几个,并将左边的作为隐藏传递。这怎么可能 我想做一些类似于{{form\u rest(form,{'display':'hidden'}}}}或{form\u rest(form)}} 例如: <form action="{{ path('fiche_intervention', {'rreid': rre.rreid}) }}" method="post" {{ form_enctype(form) }}> {{ form_er

我有一个表单类,它包含许多字段。我想渲染其中的几个,并将左边的作为隐藏传递。这怎么可能

我想做一些类似于
{{form\u rest(form,{'display':'hidden'}}}}
{form\u rest(form)}}

例如:

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

{{form_errors(form)}}
{{form_标签(form.rredatestart,“重新培训日期:”)}
{{form_小部件(form.rredatestart)}
{#其他一些字段…#}
{# ... #}
{#/其他一些字段…#}
{{form_rest(form)}

form\u rest()呈现表单中所有未呈现的字段。它只是按原样渲染它们,所以如果要将其余字段渲染为“隐藏”,只需在表单中将它们定义为“隐藏”

您必须在“FormController”中的buildForm函数中执行此操作。只要在添加字段时添加“隐藏”就足够了

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

您还可以将所有不需要的字段设置为在细枝模板中渲染:

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

{{form_errors(form)}}
{{form_标签(form.rredatestart,“重新培训日期:”)}
{{form_小部件(form.rredatestart)}
{%do form.UnneedField1.setRendered%}
{%do form.UnneedField2.setRendered%}
{%do form.UnneedField3.setRendered%}
{{form_rest(form)}

我想这是最好的实践。

和péCé:你们都是对的,我意识到我必须创建两个表单类,每个表单对应一个表单。
{{ form_end(form, {'render_rest': false}) }}