Sélectionner avec optgroup dans Symfony 2.0

dans Symfony2 , le composant html select est rendu comme un objet ChoiceType , qui est utilisé en effet aussi pour checkboxes et radiobuttons .

quelqu'un vraiment savoir comment rendre un select avec l'option "optgroup" dans Symfony2 ?

par souci d'exhaustivité, je vous présente un exemple de sélectionnez avec le optgroup étiquette (exemple de 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> 

de plus, notez qu'il existe un post similaire ici , mais les réponses ne sont pas convaincantes.

20
demandé sur Community 2012-09-03 12:28:25

2 réponses

Faites ceci:

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

fonctionne pour Symfony 2.0.x

35
répondu Carlos Granados 2012-09-03 09:03:19

cela dépend de la définition de votre entité et de la façon dont vous la regroupez. En supposant que le regroupement est fait donné un paramètre dans votre objet, disons, "marque". Vous pouvez faire:

$builder->add('cars', null, array(
  'group_by'=> 'brand'
));
16
répondu Sylvain 2014-12-15 11:15:27