Forms 带复选框的Symfony2表单集合

Forms 带复选框的Symfony2表单集合,forms,symfony,silex,Forms,Symfony,Silex,我正在用Symfony2构建一个表单,需要将一些复选框分组。我根本不知道如何将选项/标签传递给BonusGroup中的复选框 表格: $builder->add('groups', 'collection', array( 'type' => new BonusGroup(), 'allow_add' => false, 'allow_delete' => false, 'by_reference' => false ));

我正在用Symfony2构建一个表单,需要将一些复选框分组。我根本不知道如何将选项/标签传递给BonusGroup中的复选框

表格:

$builder->add('groups', 'collection', array(
     'type' => new BonusGroup(),
     'allow_add' => false,
     'allow_delete' => false,
     'by_reference' => false
));
$builder->add('bonus', 'choice', array(
      'choices'  => $options['bonus'],
      'multiple' => true,
      'expanded' => true
));
{% for group in form.groups %}
     {{ form_label(group) }}
     {% for final in group.bonus %}
          {{ form_widget(final) }}
     {% endfor %}
{% endfor %}
$data = array(
    'groups' =>
        array ('Group 1 label' => array())
);

$form = $app['form.factory']->createBuilder(new Form(), $data))->getForm();
BonusGroup():

$builder->add('groups', 'collection', array(
     'type' => new BonusGroup(),
     'allow_add' => false,
     'allow_delete' => false,
     'by_reference' => false
));
$builder->add('bonus', 'choice', array(
      'choices'  => $options['bonus'],
      'multiple' => true,
      'expanded' => true
));
{% for group in form.groups %}
     {{ form_label(group) }}
     {% for final in group.bonus %}
          {{ form_widget(final) }}
     {% endfor %}
{% endfor %}
$data = array(
    'groups' =>
        array ('Group 1 label' => array())
);

$form = $app['form.factory']->createBuilder(new Form(), $data))->getForm();
查看。细枝:

$builder->add('groups', 'collection', array(
     'type' => new BonusGroup(),
     'allow_add' => false,
     'allow_delete' => false,
     'by_reference' => false
));
$builder->add('bonus', 'choice', array(
      'choices'  => $options['bonus'],
      'multiple' => true,
      'expanded' => true
));
{% for group in form.groups %}
     {{ form_label(group) }}
     {% for final in group.bonus %}
          {{ form_widget(final) }}
     {% endfor %}
{% endfor %}
$data = array(
    'groups' =>
        array ('Group 1 label' => array())
);

$form = $app['form.factory']->createBuilder(new Form(), $data))->getForm();
将数据传递到表单:

$builder->add('groups', 'collection', array(
     'type' => new BonusGroup(),
     'allow_add' => false,
     'allow_delete' => false,
     'by_reference' => false
));
$builder->add('bonus', 'choice', array(
      'choices'  => $options['bonus'],
      'multiple' => true,
      'expanded' => true
));
{% for group in form.groups %}
     {{ form_label(group) }}
     {% for final in group.bonus %}
          {{ form_widget(final) }}
     {% endfor %}
{% endfor %}
$data = array(
    'groups' =>
        array ('Group 1 label' => array())
);

$form = $app['form.factory']->createBuilder(new Form(), $data))->getForm();
有什么建议吗


谢谢

首先,将表单小部件更改为表单行,但它还不能工作,因为集合类型需要一段JavaScript才能工作

请参见此处的示例: