Découvrir Symfony3

Utiliser des boutons de soumission

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez pouvoir utiliser un ou plusieurs boutons pour vos formulaires. Une brique existe pour vous aider à gérer cette partie et implémenter des comportements différents.
06:13

Transcription

Utiliser des boutons de soumission de formulaire, ça veut dire permettre la soumission du formulaire. Attention quand même parce que quand vous allez permettre la soumission de formulaire, il va falloir adapter un petit peu. Regardez, ici avant, on avait juste la méthode GET. C'est bien mais ça risque de ne pas marcher. On va le faire ensemble. Je vais rester comme ça, vous allez voir ce que ça va donner. Puis, après, on va adapter un petit peu tout ça. Donc là, on a écrit un formulaire. C'est bien. Maintenant, on va ajouter les boutons de soumission. On va d'abord ajouter comme ça avec add un bouton qui va s'appeler juste submit. On va dire que c'est un SubmitType donc hop, SubmitTypeclass. Et on va on ajouter un deuxième comme ça, qui va s'appeler delete par exemple, et qui va donc non pas être un SubmitType mais un ButtonType, ButtonTypeclass. En faisant ça, simplement en rechargeant votre vue, vous obtenez deux boutons : un bouton Submit et un bouton Delete. Si j'appuie sur Submit, qu'est-ce qui se passe ? Ça va me crier dessus parce qu'on va me dire que actuellement, je n'ai autorisé que GET et HEAD qui est autorisé d'origine sur ma route my, aie, c'est embêtant ça. Ça veut dire qu'il va falloir qu'on adapte un petit peu les méthodes qu'on autorise. Si vous voulez en mettre plusieurs, pas de problème. Il faudra ouvrir comme ça un objet au format .json et mettre les différents verbes que vous souhaitez. GET ici et POST ici. Et comme ça, vous avez les deux. Là, ça va fonctionner. Votre formulaire va pouvoir être soumis. Ça, c'est super. Mais maintenant, comment je fais pour gérer quel bouton a été cliqué parce que ça fonctionne mais j'aimerai bien avoir l'information. Ne vous inquiétez pas, sous Symfony, tout est prévu pour vous mâcher le travail. D'abord, on va lui donner directement à ce formulaire la request pour qu'il puisse la gérer. Une petite ligne en plus ici, un form flèche handlerequest et on lui passe l'objet request. Donc je vais faire un petit peu le topo. L'objet request, on est bien d'accord que c'est la request qui est ici qui est composée par Symfony qui donc, très certainement, va contenir les data que vous aurez soumises ce qui fait que ici le formulaire lui, il a un fonctionnement handleRequest il récupère la request, il travaille avec. Et puis, il va vous permettre de faire des choses. Ça, c'est bien. Une fois que vous avez fait ça, évidemment, vous allez pouvoir travailler. On va faire un petit if ici et on va lui demander de vérifier que le formulaire est valide. isValid Oui, oui, ça vous fera aussi la validation. Surtout, ça ne passera pas à l'intérieur si le token est invalide. Parce qu'il est possible de soumettre le formulaire sans token. On fera un petit test après. Et puis, si maintenant, on va vouloir avoir l'information. Alors, comment on va faire pour obtenir l'information ? On va le mettre dans un dump parce qu'on a déjà vu l'outil et puis, on aime bien l'utiliser. Et pareil, sur form, on va aller chercher avec getClickedButton quel est le bouton qui a été cliqué. Génial ! Quand vous faites ça, vous allez obtenir le bouton cliquer. Ça, c'est excellent. Bien sûr, ça ne va pas fonctionner quand vous allez charger la page parce que quand vous chargez, vous êtes en GET, le handleRequest qui passe là comprend que c'est du GET. Et puis, il ne peut pas du tout travailler avec ; donc là, hop ça, ça ne passe pas dedans. On arrive jusqu'en bas, il n'y a pas de dump qui est effectué. Mais maintenant, si je soumets ce formulaire, je vais soumettre en POST, le formulaire va récupérer la request, il va faire handleRequest, il va me permettre d'avoir le bouton. Je fais Submit et regardez, j'ai un dump qui apparaît. Si je regarde dans mon dump ici, effectivement, j'ai bien le SubmitButton qui apparaît. Ça, c'est génial. J'aimerai aller un petit peu plus loin parce que le SubmitButton, c'est bien gentil, mais moi, l'information qui m'intéresse, c'est celle-là, c'est le name du bouton, celui que j'ai nommé, que j'ai nommé dans mon FormType. Si je veux le récupérer, regardez, flèche derrière et on va faire un getName. On l'a un petit peu plus bas. Regardez, getName. C'est parfait. On va recommencer. Submit Et là maintenant, je sais que c'est le bouton Submit qui a été soumis. Ça, c'est cool, pourquoi ? Parce que ça va vous permettre de créer des logiques particulières avec les data et puis, de pouvoir travailler. Or, sachez qu'on peut aussi, on va faire une copie, récupérer les data. On a la possibilité de faire ça. getData comme ça, ça va vous permettre de récupérer les data du formulaire. Voilà. Là, vous récupérez les data, un petit array sympa avec toutes les data de votre formulaire et vous pouvez donc travailler avec votre formulaire très facilement. Mais alors, notre bouton Delete, qu'est-ce qui se passe ? J'ai beau cliquer dessus, forcément, il ne se passe rien. Cet outil-là, le ButtonType là ici, ça, ça vous permet bien sûr de créer des boutons, mais pas des boutons Submit. Non, des boutons de formulaire qui ne fonctionnent pas, qui sont juste des boutons sur lesquels, pourquoi pas, pourrait venir câbler de la logique javascript ou je ne sais quoi, donc alors. Alors, si j'ai envie que ce soit un SubmitType pareil que l'autre, je vais simplement le mettre. Et à ce moment-là, je pourrais soumettre avec l'un ou l'autre des boutons. Attention, faites le nettoyage. À chaque fois, on enlève le use qui ne sert plus à rien. On va recharger la page complètement en GET. Et puis, cette fois-ci, je vais utiliser Delete. Et regardez : c'est bien Delete qui a été cliqué. J'utilise Submit, c'est bien Submit qui a été cliqué. Ça vous permet de créer des comportements, de faire du comportement différent sur les formulaires, vous voyez que ça va très très loin. Le framework de formulaire est un outil formidable quand on a besoin de travailler avec des formulaires. On va pouvoir travailler bien proprement des formulaires un peu complets. Alors maintenant, cette histoire du token, c'est intéressant cette histoire du token. On voit que si je clique sur Submit, effectivement ça passe. Mais alors, imaginons que ce token, moi, tiens, allez, on va recharger la page comme ça là. Puis, on va venir l'écraser parce que vous pouvez faire ça, vous pouvez travailler directement sur les différents champs. On va récupérer le dernier bouton et là, regardez en dessous, j'ai le hidden qui est en fait mon token. Ce token, je vais le modifier. Voilà, je vais mettre n'importe quoi. Et je fais Submit, et je n'ai pas de dump. Et même mieux que ça, j'ai une erreur. Tiens, qu'est-ce que c'est que cette erreur ? On va aller regarder. On vous dit qu'attention, le CSRF token n'est pas valide. Vous voyez bien qu'ici, on a une sécurité. Si je ne respecte pas le CSRF qui a été généré sur le formulaire évidemment, il ne pourra pas être soumis. Donc vous êtes sur un système sécurisé que vous pourrez faire évoluer et avec lequel vous allez pouvoir interagir. De nombreuses manières sont possibles pour mettre en place du comportement sur un formulaire. Là, je vous en montre quelques unes parce que c'est vraiment intéressant de comprendre et de savoir qu'on peut vraiment manipuler l'objet de formulaire mais vous allez trouver pleins de choses Après, évidemment, je n'en doute pas.

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 !