Symfony 7 : Créer une API, Désérialisation et MapRequestPayload

  Рет қаралды 5,755

Grafikart.fr

Grafikart.fr

Күн бұрын

Пікірлер: 10
@GuillaumeC37
@GuillaumeC37 11 ай бұрын
Merci pour la vidéo. Mais à 8:30, on retrouve le souci du slug créé par l'utilisateur.
@gamesngeeks
@gamesngeeks 10 ай бұрын
On peut passer par les DTO non?
@tajimaryohei
@tajimaryohei 10 ай бұрын
Il y a pas mal de solutions pour pallier à cela. Perso je passe par l'utilisation du formulaire (le même qu'utilisé dans les vidéos précédentes) : tu gardes le contrôle des données et la logique de création du slug et des dates. Pour utiliser le formulaire il y a 2-3 modif à faire par rapport à ce qu'on fait d'habitude : on ne passe plus par la méthode $form->handleRequest() pour attacher les données envoyées mais plutôt par la méthode $form->submit($data) qui va soumettre le formulaire avec les données. Seul petit bémol, la méthode submit attends un tableau de données. Or le $request->getContent() nous renvoie un json donc faut le transformer en tableau (un bon vieux json_decode() marche). Et voilà. Si jamais le formulaire soumis est incorrect tu peux renvoyer les messages d'erreurs à l'utilisateur via la méthode $form->getErrors(true)
@golf3gtiii
@golf3gtiii 10 ай бұрын
Bonjour, Merci pour la vidéo. Concernant l'édition d'une entité, je ne comprends pas comment on peut utiliser MapRequestPayload. Est-ce qu'il y a un moyen simple de le faire ? J'ai cru comprendre qu'il fallait passer par un resolver, mais je n'ai pas trouvé d'exemple concret.
@codingfred
@codingfred 10 ай бұрын
Bonjour, pareil, pour l'édition j'ai dû utiliser la méthode "deserialize" ...
@Raphael-jo1rp
@Raphael-jo1rp 10 ай бұрын
A noter qu'à l'heure où j'écris ces lignes, CàD en utilisant Symfony 5.8.12, la méthode paginateRecipes retourne un TypeError : "App\Repository\RecipeRepository::paginateRecipes(): Argument #1 ($page) must be of type int, null given" Ceci malgré le nullable sur la propriété public du contructeur du PaginationDTO, appliqué aussi dans la méthode index de RecipesController avec pour valeur par défaut null. J'ai testé avec le code source, c'est la même erreur.
@vincentphilippe_18
@vincentphilippe_18 11 ай бұрын
Je ne comprends pas comment le MapRequestPayload fonctionnerait pour transformer un id en entité, je trouve ça assez limité finalement car c'est rare d'avoir des DTO composé uniquement de données scalaire
@R.e.n.e
@R.e.n.e 11 ай бұрын
Il peut pas pour avoir un objet à partir d'Id il faut utiliser faire la méthode find du repository de l'objet
@PresteusSparkling
@PresteusSparkling 11 ай бұрын
Un Data Transfer Object ne contient que du scalaire à part peut-être une composition avec un tableau de DTO. Si tu as autres choses, c'est que tu ne respectes pas le pattern DTO 😉 Sinon, ce n'est pas l'attribut MapRequestPayload qui transforme les données d'entrées en instance d'objet, c'est le conteneur d'injection de dépendances (Autowiring).
@marxhubert
@marxhubert 11 ай бұрын
1st comment
Symfony 7 : Créer une API, Authenticator stateless
13:07
Grafikart.fr
Рет қаралды 8 М.
PHP-линч #14 • Symfony #[MapRequestPayload], часть 1
1:10:26
Пых (PHP Point)
Рет қаралды 2,3 М.
Правильный подход к детям
00:18
Beatrise
Рет қаралды 11 МЛН
黑天使只对C罗有感觉#short #angel #clown
00:39
Super Beauty team
Рет қаралды 36 МЛН
“Don’t stop the chances.”
00:44
ISSEI / いっせい
Рет қаралды 62 МЛН
Symfony 7 : Créer une API, le serializer
18:49
Grafikart.fr
Рет қаралды 10 М.
Symfony 7 : Envoi de fichiers
21:56
Grafikart.fr
Рет қаралды 8 М.
Symfony 7 : Les évènements
17:47
Grafikart.fr
Рет қаралды 5 М.
Symfony 7 : Paginer les données
20:32
Grafikart.fr
Рет қаралды 7 М.
Good APIs Vs Bad APIs: 7 Tips for API Design
5:48
ByteByteGo
Рет қаралды 257 М.
TailwindCSS 4, une configuration via du CSS
16:03
Grafikart.fr
Рет қаралды 4,6 М.
Découverte d'API Platform : La sérialisation
16:34
Grafikart.fr
Рет қаралды 24 М.
Symfony 7 : TP : Formulaire de contact
26:55
Grafikart.fr
Рет қаралды 9 М.
ПОСТАРЕЛА ЗА 1 ДЕНЬ НА 20 ЛЕТ - МУЖСКОЕ ЖЕНСКОЕ
55:44
ПРИЯТНЫЙ ИЛЬДАР
Рет қаралды 677 М.
The Million view clip on China's Tiktok P2428 #shorts #gochannel
0:15
Go Channel TV
Рет қаралды 29 МЛН
When the PHONE CASE can be your BEST FRIEND! #shorts
0:33
One More
Рет қаралды 18 МЛН
Что такое дагестанский кирпичный завод!
0:53
АВТОБРОДЯГИ - ПУТЕШЕСТВИЯ НА МАШИНЕ
Рет қаралды 746 М.
СИЖУ БЕЗ ЕДЫ, ПЬЮ ОДНУ ВОДИЧКУ.
21:37
Быть Добру
Рет қаралды 79 М.