Nous mettrons à jour notre Politique de confidentialité prochainement. En voici un aperçu.

Découvrir Symfony3

Aller plus loin dans l'affichage de la vue

Testez gratuitement nos 1343 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez apprendre à afficher un formulaire, à le rendre disponible dans la vue et à paramétrer cet affichage. Vous allez décider d'un formulaire simple ou complet en fonction du besoin.
05:43

Transcription

Au même titre que le rendu du formulaire, c'est-à-dire le form_start et le form_end qu'on vient de voir, vous avez la possibilité de faire un rendu complet de votre formulaire à la main. Vous n'êtes pas obligés de passer par le form_widget qui fait tout le travail pour vous. Si vous avez envie de faire un truc super particulier avec de l'ajax derrière, tout un tas de choses, je ne sais pas, vous auriez envie de vous baser sur votre construction de formulaire pour faire du java script ou même un templating bien particulier, vous avez la possibilité d'utiliser plein de balises particulières, des helper twig à l'intérieur de votre template. Allez, le premier helper que l'on va voir, c'est le form_error. form_errors que vous allez utiliser comme ça avec form. Ça, ça vous permettra d'avoir un display des erreurs à un endroit. Donc du coup, on pourrait avoir comme ça une div class="errors" à laquelle on va appliquer tout un tas de choses après. Ce qui fait que du coup ici, on serait plus tranquille pour avoir les erreurs vraiment à un endroit précis. Puis après, je pourrais avoir un div class qui s'appellerait par exemple nameInput, imaginons. Et à l'intérieur, j'ai envie de faire le display complet du label, du widget, puis, pourquoi pas, même des erreurs particulières de ce champ de formulaire-là, non pas de la globalité de mon formulaire. Je vais pouvoir le faire avec des helper aussi. Alors on en a un, c'est form_label. Donc ça, ça vous permet d'avoir un rendu. Et alors, je vais faire form comme ça, mais je vais faire le label de quel champ ? Bah, le champ que j'ai nommé dans mon type. Je l'ai appelé comment ? Je l'ai appelé name, très bien. Donc, dans ce cas-là, je vais aller chercher name comme ça. Là, vous n'allez avoir le rendu que de ce form label-là uniquement. Vous voyez, Name ici. Alors faites attention parce que tant que vous n'avez pas fait le rendu des widgets, le form_end, lui, il vient vous ajouter tout ce que vous avez oublié de mettre, comme ça. Donc il va falloir faire le rendu pour tous les champs, si vous avez commencé à travailler comme ça, vous êtes obligé. Ensuite, je vais pouvoir utiliser form_widget qui me permet effectivement ici d'avoir le rendu widget que pour ce champ-là : form_name et du coup, hop, j'ai le rendu. Ce qui est génial c'est que, regardez ça va fonctionner exactement comme le form_start, je vais pouvoir derrière venir mettre ici des options avec pourquoi pas attr. Et je vais pouvoir, par exemple, ici, lui mettre une class particulière à ce champ-là. Je vais l'appeler name comme ça. Et en mettant la class name dessus, je pourrais travailler avec CSS sur ce champ en particulier. Là, si je vais regarder ce champ-là, en ayant mis la class name, elle vient s'implémenter là. Ça, c'est génial. Ça vous permet de travailler précisément sur un champ particulier en mettant des attributs ou autres, on pourrait y mettre de la data. Imaginons que vous ayez envie de mettre de la data comme ça, data. Et puis ici, on mettrait, tiens data-id par exemple et on aurait info à cet endroit-là et là hop, on va venir mettre de la data-id. Ça, ça peut servir à plein de choses, notamment à venir travailler plus précisément sur les champs, très intéressant. Qu'est-ce qui nous manque ? Les erreurs. C'est pareil. Les erreurs, vous pouvez les gérer de façon atomique comme ça en venant ici mettre un form_errors comme ça sur le form_name donc non pas sur la globalité du formulaire comme on l'a fait ici, mais uniquement sur ce form-là. Ça, c'est jouable aussi sans aucun problème. Qu'est-ce qui nous manque ? Il nous manquera pourquoi pas le widget du bouton, Donc là, pour les boutons, ça va être pareil. Alors on va pouvoir retirer ça par exemple. Si vous utilisez par exemple un framework css type bootstrap, ce genre de chose. Ça peut être intéressant de venir mettre des class sur quelque chose. Ici, on pourrait avoir une class form-control pour ceux qui connaissent bootstrap, ça vient s'implémenter tout de suite, directement. Et puis là, c'est pareil si on pouvait avoir un truc form-inline. Donc ça permet de ne pas polluer le html, de rester sur des constructions un peu en mode objet et quand même de travailler proprement et précisément sur ces formulaires sans s'embêter, sans se prendre la tête, c'est vraiment très simple. Donc le submit, on sait que c'est le form.submit ici. Et le delete, on sait que c'est le form.delete que l'on a nommé Delete. Ça, ça va marcher, vous allez avoir les deux. Là, ce qui est bien, c'est que vous contrôlez complètement l'affichage. Vous avez vu que ça ne se met pas dans des div, ça se met dans ce que vous voulez. Là, vous allez générer uniquement le tag html du bouton et ici uniquement le tag html du Input. C'est pas mal. Le form_label que vous avez là, c'est un peu embêtant le form_label. Regardez, il vous fait quelque chose de classique mais c'est lui qui choisit. Sachez que ça, vous avez possibilité ici de le modifier directement en disant que le label ici pourquoi pas, ce serait Entrez votre nom, par exemple. Tac, ça, vous le customisez très facilement avec quelques options dans le type, avec quelques options dans la vue. Vous allez personnaliser proprement, doucement, les différentes informations de votre formulaire et vous voyez que, en quelques lignes, on obtient très rapidement un formulaire et ça reste propre au niveau du templating, on ne vient pas polluer l'espace de template avec des informations php comme on faisait il y a très longtemps, maintenant, tout ce passe comme ça, comme si c'était du templating un peu javascript, c'est vraiment très agréable. Et puis, on reste sur quelque chose de lisible, de propre. Évidemment, quand on commence à avoir beaucoup d'informations dans les options, ça devient dangereux un peu, au niveau de la lecture et de la lisibilité, ce n'est pas non plus incroyable, mais ça reste quand même agréable à coder, ça reste quand même agréable à lire et on n'est pas trop perdu. Il vous arrivera d'avoir de très très gros formulaires. C'est souvent ce qu'on va retrouver dans les applications, des très gros formulaires. Mais mine de rien, ça reste lisible. Donc, vous voyez que là maintenant, vous avez en main plus de possibilités de customiser les formulaires. Et on va voir que vous pouvez aussi le faire un peu de façon globale. C'est ce qu'on va voir dans la prochaine vidéo.

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
Votre/vos formateur(s) :
Date de parution :7 avr. 2016
Durée :3h27 (45 vidéos)

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 !