Symfony ParamConverter en cas enregistrement absent
Résolu
Clui
-
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
Pitet Messages postés 2826 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Object not found by the @paramconverter annotation.
- Annotation word - Guide
- Shockwave flash object - Télécharger - Divers Web & Internet
- Annotation edit - Télécharger - Conversion & Extraction
- La shoes by avis - Forum Consommation & Internet
- To be filled by o.e.m - Forum Windows
1 réponse
Bonjour,
C'est bien le comportement attendu de ParamConverter : si aucun enregistrement en base ne correspond à l'identifiant passé dans l'url, le site retourne alors une erreur 404 (voir le code de retour http en bas à gauche dans le Profiler), ce qui est normal puisque l'utilisateur demande une page qui n'existe pas.
Le "joli" message d'erreur (et la stack trace) s'affiche uniquement car tu es en environnement de développement (APP_ENV=dev dans fichier .env). Tu peux tester avec l'environnement de prod pour voir la page 404 de base de Symfony (que tu peux évidemment personnaliser).
Bonne journée,
C'est bien le comportement attendu de ParamConverter : si aucun enregistrement en base ne correspond à l'identifiant passé dans l'url, le site retourne alors une erreur 404 (voir le code de retour http en bas à gauche dans le Profiler), ce qui est normal puisque l'utilisateur demande une page qui n'existe pas.
Le "joli" message d'erreur (et la stack trace) s'affiche uniquement car tu es en environnement de développement (APP_ENV=dev dans fichier .env). Tu peux tester avec l'environnement de prod pour voir la page 404 de base de Symfony (que tu peux évidemment personnaliser).
Bonne journée,
Pour personnaliser le message du retour 404, le plus simple est d'utiliser directement le ProductRepository à la place de ParamConverter :
https://symfony.com/doc/current/doctrine.html#fetching-objects-from-the-database
Mais c'est juste des raccourcis pour des fonctions de contrôleur simple. Il sera souvent plus pratique d'utiliser le repository.