dimanche 14 octobre 2012

[Symfony2] Les formulaires de choix

Mon premier post concerne les formulaires sous symfony2, plus précisément les formulaires de choix. Pourquoi ? Tout simplement parce le jour ou j'ai eu besoin de les utiliser, il m'a fallut quelques recherches (bien lourdent) pour comprendre que les formulaires de type 'listebox', 'radio' ou 'checkbox' était la même chose sous symfony2, que pour avoir l'un ou l'autre seul les attributs changeaient.

Voici un exemple 'fastpast' que vous pourrez utiliser directement dans votre code :
 (Dans un controller ou une class qui gère vos formulaires)

La "listbox" :

 
 $form = $this->createFormBuilder()
                ->add('value', 'choice', array('choices' => array('val1' => 'val1', 'val2' => 'val2'), 'label' => 'label : ')) ->getForm();
 

Les "checkbox" :

Pour les checkbox, nous allons tout simplement rajouter deux attributs qui vont indiquer à mon formulaire que c'est un choix multiple que je veux : "'expanded' => true, 'multiple' => true"
 
 
 $form = $this->createFormBuilder()
                ->add('value', 'choice', array('expanded' => true, 'multiple' => true, 'choices' => array('val1' => 'val1', 'val2' => 'val2'), 'label' => 'label : ')) ->getForm();
 

Les "radio" :

Pour les "radio", nous allons modifier la valeur d'un des attribut que nous avons rajouté pour les checkbox, nous allons lui dire que le choix multiple n'est plus accepté et passer l'attribut 'multiple' à 'false' : "'expanded' => true, 'multiple' => false"

 
 $form = $this->createFormBuilder()
                ->add('value', 'choice', array('expanded' => true, 'multiple' => false,'choices' => array('val1' => 'val1', 'val2' => 'val2'), 'label' => 'label : ')) ->getForm();
 

Voila vous n'avez plus qu'à copier/coller ses morceaux de code, les personnaliser et ça devrait fonctionner normalement. J’espère que cela vous sera utile et vous fera gagner du temps.

Aucun commentaire: