Bonjour,

Voilà, je dois faire un formulaire assez basique avec une liste déroulantes contenant les régions de France, un numéro de semaine (dans un champs text) et deux boutons : précédent et suivante pour naviguer sur les semaines.

La soumission du formulaire se fera en Ajax à terme.

J'ai donc créer une classe pour ce formulaire (pour l'instant il n'y a que la liste déroulant avec les régions) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
public function buildForm(FormBuilderInterface $builder, array $options)
    {        
        $builder->add('region', 'entity', array(
                        'class' => 'MonProjetBundle:Region',
                        'property' => 'name',
                        'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
                            return $er->createQueryBuilder('r')->orderBy('r.name', 'ASC');
                        },
                        'attr' => array('onchange' => 'javascript:this.form.submit();',
                                        'value' => $options['region'])
                    ));
    }
Le problème est que la région aura une valeur par défaut selon la personne connectée.
Je créer le formulaire à partir de mon controller, mais de ce fait, comment envoyer la région par défaut ?

J'ai testé ceci dans mon controller :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 $form2 = $this->createForm(new RegionType(), array('region' => 3));
Le "3" étant l'id région par défaut que je souhaite. En le récupérant dans les options de mon buildForm, mais à priori ça ne fonctionne pas comme ca.

Dois-je construire le formulaire directement dans le controller ?

J'ai pas mal cherché et je ne trouve aucune réponse...

Merci d'avance.