在循环内多次渲染Symfony表单字段

时间:2017-04-05 09:32:29

标签: php symfony twig

我有一个简单的formType,只有一个checkBoxType

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的单个复选框输入?

1 个答案:

答案 0 :(得分:0)

@Jérôme根据symfony表单,您不重复表单元素。如果你需要多个复选框,那么你可以使用类似的东西

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

expanded =&gt; true和multiple =&gt; true用于(多个)复选框,有关详细信息,请访问http://symfony.com/doc/current/reference/forms/types/choice.html