我的表单有3个收集字段:
$builder->add('affiliates', 'collection', array(
'type' => new AffiliateForm(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'options' => array(
'affiliate_types' => $options['affiliate_types'],
'business_types' => $options['business_types'],
),
));
$builder->add('other_businesses', 'collection', array(
'type' => new OtherBusinessForm(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
));
$builder->add('welfare_activities', 'collection', array(
'type' => new WelfareActivityForm(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'options' => array(
'welfare_activity_types' => $options['welfare_activity_types'],
),
));
在模板中,我逐个单独显示每个子表单字段,如下所示:
<td class="t1c5" >{{ form_widget(affiliate.location) }}
{{ form_errors(affiliate.location) }}</td>
在表格的最后我做了:
{{ form_rest(form) }}
但是当给定的集合为空时,它会导致在表单末尾显示以下单词:“Affiliates”,“Other business”,“Welfare activities”。 所以问题是:
我可以执行以下操作以避免上述问题:
<div style="display:none;">{{ form_rest(form) }}</div>
处理问题的方法是否正确(也许我可以隐藏字段或其他内容)?
谢谢。
答案 0 :(得分:0)
这些单词会显示在表单上,因为您忘了:
{{ form_label(affiliate.location) }}
…
…
根据文件:
form_rest(查看,变量)
这将呈现尚未为给定表单呈现的所有字段。总是在你的表单中的某个地方有一个好主意,因为它会为你渲染隐藏的字段,并使你忘记渲染的任何字段更加明显(因为它会为你渲染字段)。
答案 1 :(得分:0)
{{ form_end(form, {'render_rest': false}) }}