cha*_*exx 5 forms symfony silex
我正在使用Symfony2构建一个表单,需要对一些复选框进行分组.我根本无法弄清楚如何将选择/标签传递给BonusGroup中的复选框.
形成:
$builder->add('groups', 'collection', array(
'type' => new BonusGroup(),
'allow_add' => false,
'allow_delete' => false,
'by_reference' => false
));
Run Code Online (Sandbox Code Playgroud)
BonusGroup():
$builder->add('bonus', 'choice', array(
'choices' => $options['bonus'],
'multiple' => true,
'expanded' => true
));
Run Code Online (Sandbox Code Playgroud)
View.twig:
{% for group in form.groups %}
{{ form_label(group) }}
{% for final in group.bonus %}
{{ form_widget(final) }}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
将数据传递到表单:
$data = array(
'groups' =>
array ('Group 1 label' => array())
);
$form = $app['form.factory']->createBuilder(new Form(), $data))->getForm();
Run Code Online (Sandbox Code Playgroud)
有小费吗?
谢谢!
小智 2
首先,将form_widget更改为form_row,但它还无法工作,因为集合类型需要一段 JavaScript 才能工作。
请参阅此处的示例: http ://symfony.com/doc/2.1/reference/forms/types/collection.html