Créer un gestionnaire de collections avec Symfony3

Créer une entité à travers un formulaire

Testez gratuitement nos 1324 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Vous allez récupérer les données d'un formulaire et créer une entité avec ces données. Bien que ce ne soit pas la seule possibilité d'interaction, il est important de savoir le faire.
07:20

Transcription

Alors, ça serait bien de rendre un petit peu tout ça interactif, pour le rendre interactif, il faudrait un formulaire. Moi ce que je vous propose c'est qu'on va s'en petit copier de ça. Qu'on a eu le mettre ici dans un nouveau fichier, qui s’appellerait pourquoi pas l'ItemController, comme ça, on va avoir quelque chose de propre, dans lequel on va pouvoir gérer nos idées. On va mettre ça comme ça et puis ici on va dire que c'est attaquable sur Item, ah ce truc-là. On va aussi l'appeler Item, et puis ici on va l'appeler addAction. On ne va pas oublier ici de faire une nouvelle View, ah répertoire Item, comme pour une Page et on va se faire également un petit fichier : add.html.twig. Si vous voulez un exemple ah, il suffira de reprendre ce qu'on a là, donc on va simplement faire un copier-coller de l'index, et on va supprimer ce qu'il y a ici. Parce qu'on veut pas de Jumbotron pour cette partie-là, on va juste faire une Div, avec une classe juste Container, et puis ça sera suffisant. Bon, maintenant qu'on a ça, il va falloir qu'on fasse un formulaire. donc oubliez pas ici que le Addaction, on va le garder, on va le modifier un petit peu, on va le travailler. Par contre un de l'autre coté, on a plus besoin de tout ça, c’était pour le test. Donc on revient quelque chose d'un peu plus classique. On va modifier ici, on va dire que c'est Item, qu'on va chercher, donc c'est le dossier Item, et ensuite ça va être le fichier add.html.twig, et ainsi que moi, vous avez mis majuscule, ici, faites attention, sur le dossier, on met un I minuscule, OK. Maintenant qu'on a ça, on n'est pas trop mal, mais, il va falloir faire un formulaire, alors. Pour faire un formulaire, vous allez passer par l'outil, qui permet de créer des formulaires, createFormBulder et puis hop, on sera bon. On n'oublie pas ça effectivement ah, on va le mettre dans une forme comme ça, « this » qui est de forme Bulder, et puis on va lui ajouter des champs. Or quand vous ajoutez des champs ici, il va falloir de donner les champs qui nous intéressent, c'est à dire Title, qui va être quoi, bah un TextType, voilà, classe, comme ça, et puis on va en ajouter successivement jusqu'à finir notre formulaire, et on terminera avec un getForm, comme ça, pour récupérer le formulaire. On va avoir besoin de quoi ? On a avoir besoin, on a dit d'une Description, on a avoir besoin également on a dit d'un code, et on va avoir besoin aussi de la Collection, qui va être intéressante pour nous. Bon, tout ça je le mets bien sûr en TypeText, vous pouvez faire ce que vous voulez, travailler le formulaire proprement. Évidemment l'idée ici, c'est de vous montrer un petit peu comment ça va fonctionner. Ensuite on va passer le formulaire avec un createView et on n'oubliera pas à ce formulaire, de lui ajouter un bouton submit, qui va nous permettre bien sûr de pouvoir bah valider le formulaire, parce que si non, mais vous ne pourrez pas valider le formulaire. Là, vous avez un formulaire un peu classique. Pour l'affichage dans votre Twig, vous allez utiliser le URL form, et vous allez lui passer le formulaire. Puis là et vous avez déjà un formulaire fonctionnel. Or pour vous y rendre bien sûr ici, vous oublierez pas de mettre la route qu'on a donné ici, c'est à dire Item, ah. Vous allez arriver ici sur bah quelque chose qui ne marche pas, on vous dit que la route Item n'existe pas, alors vérifier bien ici vous avez crée HomepageController à cet endroit-là ici vous avez fait un copier-coller, donc n'oubliez surtout pas de renommer absolument tout, pour que ça fonctionne, si non, il ne le récupérera pas. Alors, je vous l'accorde, c'est pas très joli, mais c'est pas grave, parce que c'est pas vraiment ce qu'on souhaite, or pour que ça soit joli pour le moment, pour nous, c'est pas très important, nous, ce qu'on veut, c'est pourvoir travailler que le formulaire. Donc comment ça marche pour le formulaire ? Il va falloir ce formulaire, lui donner la requête. Pour ça vous allez utiliser ici et bien handleRequest, que vous avez à cet endroit-là. Et vous allez lui donner la request qui provient de l'appel, une fois que ça soit soumis, c'est la request, qui nous intéresse. Cet objet request que vous avez là, il est automatiquement constitué par Symfony, quand vous verrez valider et plus d'ailleurs même quand vous allez arriver sur la page, c'est lui qui va contenir les informations. Quand vous aurez fait le HandleRequest, on va vérifier que ce formulaire est valide. Donc ifformisValid, et à ce moment-là et uniquement à ce moment-là, on créera ici l'Item, et comme ça on aura directement créer un Item et c'est génial. Et ça va être très simple, ici de pouvoir créer des Items à partir d'un formulaire. Par contre il va falloir récupérer les datas, donc les datas, qui vont nous intéresser, on va les récupérer sur le forme avec un getData, et vous allez voir que du coup, on va se retrouver ici on va faire un var_dump, bah encore pour voir ce qu'il se passe avec les datas, qu'on aura remplies. C'est pas très compliqué de fonctionner avec des formulaires et donner la main à l'utilisateur, alors je vais recharger. On va taper n'importe quoi pour le test et on va faire un submit. Et regardez, je me retrouve avec le Title, la Description, le Code et la Collection. Ça c'est extrêmement parfait, c'est ce qu'on veut. Comme c'est honoré, bah on n'a plus ici qu'à venir travailler notre objet en lui mettant les bonnes propriétés. On sait qu'ici on a besoin du Title ah, comme ça. et on sait que après on va avoir besoin de la même manière à tous les endroits qu'on a en dessous, des différentes informations qui se trouvent dans le rée. Donc là on va aller récupérer la description, là, on va aller récupérer le Code et là on va aller récupérer la Collection. Ça va sauvegarder l'objet, ça va le flusher et ça va fonctionner. On va quand même faire un test ah, on recharge juste la page pour voir ce qu'il se passe, ça continue. Vous remarquerez qu'ici on a bien trois appels base de données, qui sont effectués. On peut aller regarder ce qu'il s'est passé, on a un début Transaction, oui, ça c'est ce qui se passe, contre, ça constitue la requête, certes que quand vous faites ici un persist, ah, il démarre par ça. Il fait à chaque fois les différents persists que vous lui avez demandé de faire et enfin il vient faire un Commit, qui pousse un base de données. Et là vous venez de créer un objet, que les informations qu'on avez mis à l'avance. Si je recharge ici la vue de mon phpMyAdmin effectivement, je vois bien que mon objet à cet endroit-là, a bien été crée et que ça a bien fonctionné. Or en quelques étapes, voyez qu'il est assez simple, de gérer un petit formulaire comme ça qu'on vient de créer rapidement à la main, de faire un handleRequest pour y passer la requête, qui provient et bien de l'appel post. On vérifie sa validité et ensuite derrière on va travailler avec. Quand je vous parle de validité, je vous parle aussi de la vraie validation de Symfony, parce qu'il faut savoir qu'un formulaire que vous générez dans une vue Symfony, vous allez voir ici dans les sources du code. Il a toujours un Token, qui permet de valider, que c'est bien le bon formulaire, qui est sous. Si je modifie ce Token et que je valide, ça va pas fonctionner, parce que regardez, j'ai un problème avec le CSRF Token. Pour qu'on me dit que le CSRF, ce n'est pas valide, donc ça ça vous permet de sectoriser le formulaire. De la même manière si vous avez des contraintes, sur les différents champs que vous ajoutez, vous aurez les bons erreurs.

Créer un gestionnaire de collections avec Symfony3

Développez une application de gestion de ressources avec Symfony. Prenez en main le DQL (Doctrine Query Language) ainsi que les formulaires, la sécurité, les tests, etc.

2h12 (25 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :19 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 !