【发布时间】:2016-08-17 15:58:47
【问题描述】:
我想为选择字段类型显示的不仅仅是标签和小部件。
假设我有一个 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
【问题讨论】:
-
我已经阅读了这篇文章,但我不知道如何在这些自定义字段块中获取我的选择数据(即:我的 stclass 对象)
-
用自定义块
form_label_icon替换 this line
标签: symfony symfony-forms symfony-2.7