Select with optgroup in Symfony 2.0

喜欢而已 提交于 2019-11-27 03:09:03

问题


In Symfony2, the select html component is rendered as a ChoiceType object, which is used indeed also for checkboxes and radiobuttons.

Does someone really know how to render a select with the optgroup option in Symfony2?

For sake of completeness, here I report an example of a select with the optgroup tag (example from 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> 

Moreover, notice that there is a similar post here, but the answers are not convincing.


回答1:


Do this:

$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();

Works for Symfony 2.0.x




回答2:


It depends how your Entity is defined and how you group your entity. Assuming the grouping is done given a parameter in your object, let's say "brand". You can do:

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


来源:https://stackoverflow.com/questions/12244376/select-with-optgroup-in-symfony-2-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!