私のフォームには 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'],
),
));
テンプレートでは、以下のように各サブフォーム フィールドを 1 つずつ個別に表示します。
<td class="t1c5" >{{ form_widget(affiliate.location) }}
{{ form_errors(affiliate.location) }}</td>
フォームの最後に、次のことを行いました。
{{ form_rest(form) }}
ただし、指定されたコレクションが空の場合、フォームの最後に「関連会社」、「その他の事業」、「福祉活動」という単語が表示されます。質問は次のとおりです。
- これらの単語がフォームに表示されるのはなぜですか?
上記の問題を回避するために、次のことができます。
<div style="display:none;">{{ form_rest(form) }}</div>
問題に対処する正しい方法ですか (おそらく、フィールドを非表示にすることができます)。
ありがとうございました。