Select with optgroup in Symfony 2.0
-
29-06-2021 - |
Question
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.
Solution
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
OTHER TIPS
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'
));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow