我有一个choice
表单字段,其中有很多选项需要以某种方式进行分组,以便将它们分组,可以放在不同的div中。
我目前正在尝试实现ChoiceListInterface
来实现这一目标,但我不知道如何实现这些方法,因此我可以将选择按组分组,但文档并未说明如何操作该..
这些选择总是一起呈现。
答案 0 :(得分:2)
你有这个数组
$grouped_choices = array(
'Swedish Cars' => array(
'volvo' => 'Volvo',
'saab' => 'Saab',
),
'German Cars' => array(
'mercedes' => 'Mercedes',
'audi' => 'Audi'
)
);
第一种方式:快速而简单
$builder->add($name, 'choice', array(
'choices' => $grouped_choices),
)
但我认为它不适用于'expanded' => true
所以有另一种方式,更可定制(可能更脏)
在FormType
foreach($grouped_choices as $name => $choices) {
$builder->add($name, 'choice', array(
'choices' => $choices),
'expanded' => true, //custom the widgets like you wants
);
}
让控制器将数组发送到视图,然后在视图中
{% for name, choices in grouped_choices %}
<div class="whatever">
{{ form_row(name) }}
</div>
{% endfor %}