Aller au contenu principal

Création & gestion du formulaire

Création du formulaire​

Une fois que nous disposons de notre classe NewsletterType, qui représente la structure de notre formulaire, nous pouvons alors construire notre formulaire dans notre contrôleur :

// Dans la méthode de contrôleur
$newsletter = new Newsletter();
$form = $this->createForm(NewsletterType::class, $newsletter);

La méthode createForm est utilisable dans toute méthode d'une classe héritant de la classe abstraite AbstractController.

Le but ici est de créer une entité vide, ainsi que le formulaire qui va être relié à cette entité.

Avec la méthode createForm, nous spécifions le type de formulaire que nous souhaitons récupérer, et l'entité qu'il faut lier à ce formulaire.

Gestion du formulaire​

Une fois le formulaire créé, on peut gérer les données éventuellement saisies :

$newsletter = new Newsletter();
$form = $this->createForm(NewsletterType::class, $newsletter);

+$form->handleRequest($request);

Pour assurer la gestion du formulaire, on va exécuter une méthode handleRequest et lui passer en paramètre la requête entrante.

Type-hint

Pour récupérer la requête entrante, on peut type-hinter le type Request du composant HttpFoundation de Symfony dans les paramètres de notre contrôleur

Cette méthode handleRequest va explorer toute seule le contenu des variables POST. Si elle trouve des informations correspondant à la structure de notre formulaire, elle va alors être capable de les récupérer et les mapper directement dans l'entité !