在 Symfony 2.0 中使用 optgroup 进行选择

2022-08-30 20:26:39

Symfony2 中,html 组件呈现为一个对象,该对象实际上也用于 和 。selectChoiceTypecheckboxesradiobuttons

有人真的知道如何在Symfony2中使用optgroup选项渲染选择吗?

为了完整起见,这里我报告了一个带有 optgroup 标签的选择示例(来自 w3cschools 的示例):

<select>
  <optgroup label="Swedish Cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
  </optgroup>
  <optgroup label="German Cars">
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
  </optgroup>
</select> 

此外,请注意,这里有一个类似的帖子,但答案并不令人信服。


答案 1

请执行下列操作:

$car_choices = array(
    'Swedish Cars' => array(
        'volvo' => 'Volvo',
        'saab' => 'Saab',
    ),
    'German Cars' => array(
        'mercedes' => 'Mercedes',
        'audi' => 'Audi'
    )
);

$form = $this->createFormBuilder()
        ->add('car', 'choice', array(
            'label' => 'Choose your car',
            'choices' => $car_choices,
            ))
        ->getForm();

适用于 Symfony 2.0.x


答案 2

这取决于实体的定义方式以及实体的分组方式。假设分组是在对象中给定一个参数的情况下完成的,那么假设“brand”。您可以执行以下操作:

$builder->add('cars', null, array(
  'group_by'=> 'brand'
));

推荐