【问题标题】:Render Symfony form field multiple time inside loop在循环内多次渲染 Symfony 表单字段
【发布时间】:2017-04-05 09:32:29
【问题描述】:

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

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

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

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

    expanded => true 和 multiple => true 用于(多个)复选框,更多细节可以访问http://symfony.com/doc/current/reference/forms/types/choice.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2015-05-16
      相关资源
      最近更新 更多