0% ont trouvé ce document utile (0 vote)
28 vues18 pages

Symfonyforms

Transféré par

mohamedchikhzaouali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
28 vues18 pages

Symfonyforms

Transféré par

mohamedchikhzaouali
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les Formulaires dans

Symfony
(Symfony forms)
UP Web
AU: 2023/2024

1
Plan

1. Introduction
2. Création d'un formulaire
3. Types de champs

2
Introduction

❑ Créer et traiter des formulaires HTML est une tâche difficile et


répétitive. Vous devez gérer le rendu des champs de
formulaire HTML, valider les données soumises, mapper les
données du formulaire en objets, et bien plus encore.

❑ Symfony intègre une fonctionnalité de formulaire puissante


qui offre toutes ces fonctionnalités et bien d'autres pour des
scénarios vraiment complexes.

3
Création d’un formulaire

• Un formulaire Symfony est l’image d’un objet existant

Nom

Age

• Un formulaire sert à alimenter un objet.


• Un formulaire sert à récupérer des informations indépendantes de
n’importe quel objet.
• Pour installer les dépendances du formulaire, il faut exécuter cette
commande: composer require symfony/form

4
Création d’un formulaire

On peut définir un formulaire soit:


• Dans le contrôleur
• Dans un autre fichier qui sera appelé par le contrôleur

5
Création d’un formulaire
Méthode 1: Création d’un formulaire dans le contrôleur

Pour indiquer les champs à ajouter au formulaire on utilise la


méthode add du FormBuilder

Cette méthode contient 3 paramètres :


1) le nom du champ dans le formulaire
2) le type du champ
3) Un tableau (array,[]) qui contient des options spécifiques au type
du champ

6
Création d’un formulaire

Problématique:
Comment alléger le contrôleur ?

Solution:
Générer une classe qui s’occupe de la construction d’un formulaire

Comment?
utilisation de la commande:
php bin/console make:form FormName
symfony console make:form FormName
7 7
Création d’un formulaire
Méthode 2: Utilisation la dépendances MakerBundle

La commande suivante nous permet de créer un Formulaire :


php bin/console make:form FormName
symfony console make:form FormName
Maker vous demandera si votre formulaire est associé à une entité
ou non. Répondez selon votre besoin.
Un objet dont le nom est « FormNameType » sera
automatiquement créé dans le dossier src/Form et qui contient une
fonction buildForm

8
Création d’un formulaire
Récupération du formulaire dans le contrôleur

La récupération du formulaire au niveau des contrôleurs devient


beaucoup plus facile :

9 9
Types de champs
Types dans le formulaire:
Il existe différents types proposés par Symfony pour les champs d'un
formulaire dont chaque champ possède un nom, un type et des
options.

10
Types de champs
Champ à choix particulier:
Les champs à choix (choice Type) seront chargés à partir des
éléments d’une entité Doctrine. Il existe différentes façons
d'implémenter ces choices type. Les plus importants sont les deux
attributs expanded et multiple qui construisent la façon d'afficher
cette liste de choix.

11
Formulaire dans TWIG
L’envoi du formulaire à la page twig

➔ return $this->render('formation/.html.twig', ['formA' => $form]);

Affichage du formulaire dans TWIG


⮚ Afficher la totalité du formulaire avec la méthode form()
qui affiche le formulaire sans aucune mise en forme
{{ form(nomDuFormulaire) }}

12
Formulaire dans TWIG

Afficher les composants du formulaire séparément un à un d’une façon personnalisée


{{ form(nomDuFormulaire) }}
=
Form_start(): est l’équivalent de <form> en HTML
Form_errors(): affiche les erreurs relatives au champ passé en argument
Form_label(): affiche le label HTML d’un élément du formulaire
Form_widget(): affiche le champ du formulaire
Form_help(): affiche l’aide relatives au champ donné
Form_row(): est l’équivalent de form_label + form_errors + form_widget

13
Formulaire dans TWIG

14
Rendu d’un formulaire
Et Finalement, pour créer et envoyer le rendu d'un formulaire vers notre vue, on
peut suivre l'exemple de ce code:
use Doctrine\Persistence\ManagerRegistry;

public function add (ManagerRegistry $doctrine){
$product = new Product();
$form= $this->createForm(ProductType::class,$product);
$form->handelRequest()*;
if ($form->isSubmitted()**){

}
Retun $this->renderForm(“add.html.twig”,array(‘form”=>$form)
ou
Retun $this->render(“add.html.twig”,array(‘form”=>$form->createView()) }
15
Rendu d’un formulaire

* La méthode handleRequest() de la classe Form permet de


récupérer les données saisies dans les inputs du formulaire.

** La méthode isSubmitted() de la classe Form permet de savoir si


on est effectivement en méthode POST

16
Conclusion

Symfony Forms nous sera très utile car, à part la création du


formulaire en lui-même, il nous permettra d'effectuer facilement
des contrôles de saisies, tout en offrant une grande variété de
personnalisation ( Messages d'erreurs, CSS, etc..)

17
Références

• https://symfony.com/doc/current/forms.html

• https://symfony.com/legacy/doc/forms/1_4/fr/03-forms-for-web-designers

18

Vous aimerez peut-être aussi