2017-04-05 56 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