Découvrir Symfony3

Changer les propriétés d'un formulaire

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Un formulaire peut être en GET ou en POST et peut aussi être soumis sur une adresse définie ou personnalisée. Voyez comment gérer les paramètres des formulaires et créer de la configuration.
05:16

Transcription

On a fait un rendu simple de formulaire, regardez ici, avec form. C'est bien ça d'avoir fait un rendu de formulaire comme ça, mais c'est un peu embêtant parce que regardez : j'ai form name et form method post, et si j'ai envie d'avoir une method get ? Si j'ai envie de mettre des class ? Si j'ai envie de mettre du novalidate dessus ? Si j'ai envie de mettre un id dessus ? Comment je vais faire pour travailler avec ça ? Eh bien, de façon assez simple. Bien sûr, tout est réfléchi pour que ça fonctionne et pour que vous puissiez faire ce que vous voulez. Dans ce helper twig form, vous avez la possibilité ici de faire une petite virgule, d'ouvrir un objet ici comme ça au format .json et de venir renseigner des informations. Et ça, c'est génial parce que vous ne serez pas bloqués. Pour ceux qui se disent oui, c'est bien, générer des formulaires mais on ne peut pas faire ce qu'on veut. C'est faux, vous pouvez faire tout ce que vous voulez. Aujourd'hui, l'outil est extrêmement mature et vous permet de travailler complètement le template d'un formulaire, les infos d'un formulaire, les class, les identifiants, les attributs d'un formulaire, enfin, absolument tout ce que vous faites en html, vous pouvez le faire directement comme ça en rendu twig. Allons-y, on va mettre comme ça un id, ok. On va mettre un id toto et puis, on va mettre une class avec de simples quotes, une class comme ça, un tata. On va voir ce que ça donne. Si je fais ça comme ça, je vais me dire oui, c'est bon ça fonctionne. Alors effectivement, on va bien avoir des choses qui vont fonctionner notamment l'id toto mais regardez, il ne va pas se mettre sur le form, il va se mettre sur la div du dessous. Et la class elle, elle ne va pas marcher. Alors pourquoi elle ne marche pas cette fameuse class ? Parce que id, c'est prévu dans les options, class absolument pas. Si vous voulez utiliser class, tata ou du novalidate ou autres, il faudra utiliser obligatoirement un sous-ensemble qui s'appelle attr des attributs. Donc ce sous-ensemble, il faudra l'ouvrir et c'est pareil, ce sera un objet à l'intérieur qui contiendra les différentes clés valeurs, à chaque fois que vous voulez implémenter. Donc dans attr ici, j'ai la possibilité, par exemple, de mettre du novalidate si vous ne voulez pas bénéficier de la validation html5, et là, ça va vous ajouter les attributs directement. Donc là, on va recharger comme ça. Effectivement, maintenant, j'ai bien la class tata et j'ai bien novalidate avec le novalidate dedans. C'est pas mal mais regardez, il y a un truc bizarre quand même. Ça le met sur form puis ça le met sur div. Effectivement, quand vous allez utiliser le helper form comme ça, c'est ce que ça fera malheureusement. Ce n'est pas vraiment du bug mais ça le fait sur la balise form puis ça le fait sur le sous-ensemble aussi, la div qui se trouve en dessous. C'est un peu dommage, on aimerait bien que le fonctionnement soit un peu différent. Pensez que l'id, vous pouvez le mettre aussi dans les attr sachant que id est une balise, c'est un identifiant que vous pouvez utiliser très très bien directement comme ça en attribut, c'est un attribut html id donc il n'y a pas de problème, on peut le faire. Comment je fais pour que du coup ça ne s'applique pas sur le sous-ensemble de la div d'en dessous mais uniquement sur la balise form ? Eh bien, c'est facile. Vous allez ici, utiliser, form_start pour utiliser, non pas le rendu du formulaire complet, mais le rendu simplement de la balise form. En faisant ça, effectivement, vous allez avoir uniquement la balise form qui va s'ouvrir comme ça, et qui ne se fermera pas. Et qui ne se fermera pas. En fait, elle sera fermée de façon automatique par Chrome. Il va vous générer uniquement le tag d'ouverture en haut avec le novalidate, la class. Alors attention, l'id ici, vous avez vu, il ne marche pas. On va le passer directement ici dans les attributs id toto Et là, ça fonctionnera, on aura bien l'id toto. Oui mais alors, il est où le reste du formulaire parce que du coup, je n'ai plus rien. form_start ne génère que la balise form donc vous serez obligés d'utiliser un form_end pour dire, ferme le formulaire et puis insère tous les champs que je n'ai pas insérés moi-même. Et à ce moment-là, il va vous répercuter puis vous n'aurez même pas le sous-ensemble de la div de tout à l'heure, donc ce sera nickel, vous vous retrouverez avec une div par champ. C'est presque la meilleure façon de générer un formulaire de faire ça. Si j'ai envie de modifier la method, eh bien la method, c'est ici. Un paramètre que l'on peut effectivement aussi renseigner, method get par exemple. Et on le renseignera à la racine des options, pas dans attr, attention. Si vous récupérez ça ici, vous allez bien implémenter la method get. Si vous n'en mettez pas tout simplement, vous serez en method post, parce que c'est du post par défaut. Donc vous voyez que surcharger les options, ce n'est pas très compliqué. On peut le faire directement ici sans aucun souci et on peut venir travailler le formulaire directement. Sachez qu'il y en a un autre qui existe aussi, qui se met à l'intérieur des deux ici, c'est form_widget qui vous permettra de générer tous les widgets c'est-à-dire tous les champs avec les labels, form_widget comme ça. On lui passera aussi l'objet form. Faites bien attention, on passe toujours l'objet form à l'intérieur pour que ça puisse générer. Donc ça, vous allez voir que c'est un petit peu différent. Quand vous faites ça, ici directement, vous allez avoir un sous-ensemble une div id my_form avec les trois div à l'intérieur. Après, tout dépend du template que vous voulez. Vous choisissez ce que vous avez envie de faire, évidemment. Donc là, vous avez vu les différentes possibilités : soit je ne le mets pas, soit je le mets, soit je démarre avec form uniquement, soit je fais form_start form_end. Vous avez tout ce qu'il vous faut en main pour pouvoir travailler avec un formulaire simple.

Découvrir Symfony3

​Prenez en main Symfony3 pour développer des applications riches. Apprenez à créer des routes et des contrôleurs, créez des formulaires, sauvegardez des données, etc.

3h27 (45 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :7 avr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !