Выбрать с помощью optgroup в Symfony 2.0
В Symfony2 компонент select
html отображается как объект ChoiceType
, который также используется для checkboxes
и radiobuttons
.
Знает ли кто-нибудь действительно , как отображать выбор с опцией optgroup в Symfony2?
Для полноты здесь я сообщаю пример выбора с тегом 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
Это зависит от того, как определяется ваше сущность и как вы группируете свою сущность. Предполагая, что группировка выполняется с учетом параметра в вашем объекте, скажем, "бренд". Вы можете сделать:
$builder->add('cars', null, array(
'group_by'=> 'brand'
));