2017-04-05 87 views
1

多個時間我有一個簡單formType與單checkBoxType渲染Symfony的表單字段內循環

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('domain_choose', CheckboxType::class, [ 
     'label' => false, 
    ]); 
} 

然後我使其在一個循環內

{% for domain, availability in availabilities %} 
    <tr> 
     <td>{{ form_widget(form.domain_choose) }}</td> 
    </tr> 
{% endfor %} 

的問題是,只有第一複選框的循環被渲染。

我試圖手動更改窗體名稱不更迭

{'full_name': 'domain_choose[domain_choose_' ~ loop.index ~ ']'}, 

有沒有辦法來渲染我的循環中此複選框多的時間?或者我應該使用單個複選框輸入沒有formType?

回答

0

@Jérôme根據symfony表單,您不必重複表單元素。如果需要多個複選框,然後你可以使用這樣的事情

$builder->add('domain_choose', ChoiceType::class, array(
    'choices' => array(
     'Select' => null, 
     'Domain1' => 'Domain1', 
     'Domain2' => 'Domain2', 
    ), 
    'expanded' => true, 
    'multiple' => true 
)); 

擴展=>真實,多=>真正用於(多)複選框,如需詳細資料,您可以訪問http://symfony.com/doc/current/reference/forms/types/choice.html