我希望显示的选项字段类型不仅仅是标签和小部件。
假设我有一个stdclass对象数组:
这是我的控制器代码
$foo = new stdClass();
$foo->icon = 'fooicon.gif';
$foo->name = 'foo';
$bar = new stdClass();
$bar->icon = 'baricon.gif';
$bar->name = 'bar';
$formdata->choices = array($foo, $bar);
$form = $this->createForm(new CustomForm(), $formdata);
这是我的表单类型
// FormType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add() // Some other fields, not useful
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$data = $event->getData();
$form = $event->getForm();
// There are some checks here ... let's summarize them by using true
if (true) {
$form->add('myChoices', 'choice', array(
'choices' => $data->choices,
'choice_label' => 'name',
'choices_as_values' => true,
'multiple' => true,
'expanded' => true,
));
}
});
}
?>
template.html.twig
{% if form.myChoices is defined %}
{{ form_row(form.myChoices) }}
{% endif %}
有了这个,我有一个复选框,每个选项都有一个名称作为标签。我想要实现的是显示每个复选框的图标和名称。 我怎么能这样做?
我正在使用symfony 2.7
答案 0 :(得分:0)
在Twig中,您可以使用for循环来获取带有标签的多个值。
与下面的代码一样:
{% for myChoices in form.myChoices %}
<label class="check">
{{ form_errors(myChoices) }}
{{ form_widget(myChoices) }}
<span>{{ myChoices.vars.label }}</span>
</label>
{% endfor %}