Symfony - 5.7 Créer un formulaire avec Symfony
Un formulaire permet d'ajouter ou de modifier des données sans écrire directement dans la base. Symfony peut générer un formulaire à partir d'une entité. Cette leçon crée le formulaire, lui applique le style Bootstrap, puis relie les boutons à la base.
Créer l'entité et mettre la base à jour
Dans le terminal, lancez la commande make:entity et donnez un nom à votre entité. Cette commande décrit la structure des données.
Ensuite, la commande doctrine:schema:update met la base de données à jour à partir de cette entité.
php bin/console make:entity
php bin/console doctrine:schema:update --force
Générer et afficher le formulaire
Installez le composant de formulaire avec composer require form, puis lancez make:form pour créer la classe du formulaire. Son nom se termine par Type, par exemple MenuType.
Dans le contrôleur, le formulaire est créé puis affiché dans un template. Le thème Bootstrap donne ensuite au formulaire un rendu plus propre.
composer require form
php bin/console make:form
Ajouter les boutons Sauvegarder et Supprimer
Le bouton Sauvegarder envoie le formulaire et enregistre les données. Une fois l'enregistrement terminé, la page affiche ce qui a été saisi.
Le bouton Supprimer se présente sous forme de croix. Il appelle une route dédiée à la suppression, puis l'élément disparaît.
En résumé
Un formulaire Symfony se génère à partir d'une entité et de la commande make:form. Le contrôleur crée le formulaire, puis le bouton Sauvegarder enregistre les données. Une route dédiée permet aussi de supprimer un élément.
Points clés
- make:entity crée l'entité, et doctrine:schema:update met la base à jour.
- composer require form installe le composant de formulaire.
- make:form génère la classe du formulaire.
- Le thème Bootstrap améliore l'apparence du formulaire.
- Une route dédiée permet de supprimer un élément.
Questions fréquentes
Pourquoi générer le formulaire avec make:form ?
La commande crée automatiquement la classe du formulaire. Vous gagnez du temps et évitez de recopier le code à la main.
Que se passe-t-il quand on clique sur Sauvegarder ?
Les données sont enregistrées dans la base. La vidéo montre ensuite une page qui affiche ce qui a été saisi.
À quoi sert la commande doctrine:schema:update ?
Elle met la base de données à jour pour qu'elle corresponde à l'entité. Avec --force, la mise à jour est appliquée.