Symfony6 Symfony7 Techwall #40 Les formulaires
HTML-код
- Опубликовано: 4 окт 2024
- Symfony6 Symfony7 Techwall #40 Les formulaires
Les formulaires ont :
Rôle très important dans le web
Vitrine, interface entre les visiteurs du site web et le contenu du site
Généralement traité en utilisant du html form
Symfony et les formulaires : le composant Form
Bibliothèque dédiée aux formulaires
La philosophie de Symfony pour les formulaires est la suivante :
Vision 1
Un formulaire est l’image d’un objet existant
Le formulaire sert à alimenter cet objet.
Vision 2
Un formulaire sert à récupérer des informations indépendantes de n’importe quel objet.
La création du formulaire se fait de 2 façons différentes :
1) Dans le contrôleur qui va utiliser le formulaire
2) En externalisant la définition dans un fichier
Afin de rendre les formulaires réutilisables, Symfony permet l’externalisation des formulaires en des objets.
Convention de nommage : L’objet du formulaire doit être nommé comme suit NomObjetType
Cet objet doit obligatoirement étendre la classe AbstractType
Deux méthodes doivent obligatoirement être implémentées :
buildForm(FormBuilderInterface $builder, array $options) qui est la méthode qui va permettre la création et la définition du formulaire
Il y a aussi la méthode configureOptions qui permet de définir l’objet associé au formulaire. Cette fonction est obligatoire si vous voulez associer votre form à une classe.
Maker permet aussi d’automatiquement générer la classe du formulaire
php bin/console make:form FormNameType
symfony console make:form FormNameType
Exemple :
php bin/console make:form PersonneType
Maker vous demandera si votre formulaire est associé à une entité ou non. Répondez selon votre besoin.
La récupération du formulaire au niveau des contrôleurs devient beaucoup plus facile :
$form = $this-createForm(TacheType::class, $entity);
Le second parameter n’est pas obligatoire
Afin d’afficher le formulaire crée, il faut transmettre la vue de ce formulaire à la page Twig qui doit l’accueillir.
La méthode createView de l’objet Form permet de créer cette vue
Il ne reste plus qu’à l’envoyer à la page twig en question
Exemple :
$form= $this-createForm (ExempleType::class,$exemple) );
return $this-render('Rt4AsBundle:Default:myform.html.twig', array(
'form'=$form-createView()));
Deux méthodes permettent d’afficher le formulaire dans Twig :
1) Afficher directement la totalité du formulaire avec la méthode form
{{ form(nomDuFormulaire) }}
2) Afficher les composants du formulaire séparément un à un ( généralement lorsqu’on veut personnaliser les différents champs)
Merci t'es vraiment le bro tu m'aides énormément thx m8 !!
Vraiment très utile, merci énormément !
Avec plaisir
Merci !
avec plaisir
Bonjour, pourquoi on a implementer la methode to_string pour l'attribut designation alors qu'il est deja declarer comme string et non pas comme objet
Non le toString c'est pour les classes en relations avec ta classe et dans le toString vous retourner ce que vous voulez voir dans le form
il me dit variable form does not exist {{form(form)}} .. whats the problem ??
Il faut vérifier que vous avez bien envoyé la variable en deuxième paramètre de votre méthode render et avec la clé form
Salut !. J'ai récemment télécharger phpstorm. Mais ça me complique lors de la création automatique d'une page html.twig.
La méthode qu'on a utilisé dans cette vidéo pour la création de la page add-personne.html.twig
Merci
J'ai trouvé la solution merci.
@@amaninyumu385 Super. Bon travail