Personnalisation avancé des pages d’erreurs, Symfony 2

Accueil

La documentation de Symfony 2 est assez claire sur la personnalisation des pages d’erreur avec Twig : http://symfony.com/doc/current/cookbook/controller/error_pages.html

Le petit apport que je voudrais faire par rapport à la documentation concerne l’affichage de la page de débogage original de Symfony.

Il serait bien que les nouvelles pages d’erreurs aient deux comportements en fonction de l’environnement d’exécution de l’application. Un pour l’environnement de production (Votre template à vous), et un autre pour l’environnement de développement. Dans ce second cas, on aimerais avoir la page de débug original de Symfony, qui sera bien plus explicite que la page d’erreur que l’on réserve à nos futurs utilisateurs.

Pour palier à cela, il suffit d’ajouter ce code dans votre template twig.

En gros, si vous êtes en environnement de développement, c’est la page de débug original qui est utilisé et non celle que vous avez définit.

Amélie dit : 4 mai 2012 à 16 h 14 min Bonjour, j’ai actuellement un souci avec Symfony2 et TWig. j’ai intégré un système de formulaire avec des champs obligatoires, qui sont « required ». Sous Chrome et Firefox, quand je valide le formulaire alors que les champs ne sont pas remplis, j’ai un rappel à l’ordre sous forme d’infobulle. Sous IE, le formulaire part, et bien sûr j’ai une erreur car les champs requis sont vides. Auriez-vous unes piste SVP ? En vous souhaitant bonne journée … Répondre waldo2188 dit : 11 juin 2012 à 16 h 04 min @Amélie, pour éviter que IE valide ton formulaire directement utilise une routine de vérification de ton formulaire en JavaScript. Par contre, il faut quand même que tu vérifie côté serveur si ton formulaire est valide. Il ne faut jamais faire confiance aux données qui te proviennent d’un formulaire. Répondre Diabgate dit : 5 avril 2013 à 13 h 47 min Bonjour Amelie il va te falloir simplement ajouter la ligne suivante ‘required’ => false,// Rend le champ facultatif dans ta description du champ au niveau du formulaire ainsi tu pourra avoir $builder->add('nomsite', 'entity', array( 'label' => 'Service:', 'class' => 'CnceAnnuaireBundle:Site', 'property' => 'nomsite', 'required' => false,// Rend le champ facultatif 'empty_value' => 'Dans tous les services', )); Répondre dam dit : 2 août 2013 à 11 h 52 min Ce qui a été dit au dessus est faux. Les info bulles gérées par FF et chrome sont des validations HTML5 supportées par ces nav et peut être IE8 (je n’utilise pas IE) Ce que je te conseille de faire c’est de rajouter ‘novalidate’ dans ta balise form cela désactivera la validation côté client. En revanche spécifie bien dans ton formulaire toutes tes contraintes, ainsi tu auras une validation faite par toi côté serveur qui est bien plus secure. Autre avantage de désactiver la validation html5, tu gères toi même le design de tes messages d’erreur. Si l’aspect de ton site est important tu seras contente de ne pas avoir des info bulles dans un style différent sous FF, chrome, windows, mac … et des messages d’erreur SF encore une fois différent. Répondre

Bonjour, j’ai actuellement un souci avec Symfony2 et TWig. j’ai intégré un système de formulaire avec des champs obligatoires, qui sont « required ». Sous Chrome et Firefox, quand je valide le formulaire alors que les champs ne sont pas remplis, j’ai un rappel à l’ordre sous forme d’infobulle. Sous IE, le formulaire part, et bien sûr j’ai une erreur car les champs requis sont vides. Auriez-vous unes piste SVP ? En vous souhaitant bonne journée …

waldo2188 dit : 11 juin 2012 à 16 h 04 min @Amélie, pour éviter que IE valide ton formulaire directement utilise une routine de vérification de ton formulaire en JavaScript. Par contre, il faut quand même que tu vérifie côté serveur si ton formulaire est valide. Il ne faut jamais faire confiance aux données qui te proviennent d’un formulaire. Répondre

@Amélie, pour éviter que IE valide ton formulaire directement utilise une routine de vérification de ton formulaire en JavaScript. Par contre, il faut quand même que tu vérifie côté serveur si ton formulaire est valide. Il ne faut jamais faire confiance aux données qui te proviennent d’un formulaire.

Diabgate dit : 5 avril 2013 à 13 h 47 min Bonjour Amelie il va te falloir simplement ajouter la ligne suivante ‘required’ => false,// Rend le champ facultatif dans ta description du champ au niveau du formulaire ainsi tu pourra avoir $builder->add('nomsite', 'entity', array( 'label' => 'Service:', 'class' => 'CnceAnnuaireBundle:Site', 'property' => 'nomsite', 'required' => false,// Rend le champ facultatif 'empty_value' => 'Dans tous les services', )); Répondre

Bonjour Amelie il va te falloir simplement ajouter la ligne suivante ‘required’ => false,// Rend le champ facultatif dans ta description du champ au niveau du formulaire ainsi tu pourra avoir

dam dit : 2 août 2013 à 11 h 52 min Ce qui a été dit au dessus est faux. Les info bulles gérées par FF et chrome sont des validations HTML5 supportées par ces nav et peut être IE8 (je n’utilise pas IE) Ce que je te conseille de faire c’est de rajouter ‘novalidate’ dans ta balise form cela désactivera la validation côté client. En revanche spécifie bien dans ton formulaire toutes tes contraintes, ainsi tu auras une validation faite par toi côté serveur qui est bien plus secure. Autre avantage de désactiver la validation html5, tu gères toi même le design de tes messages d’erreur. Si l’aspect de ton site est important tu seras contente de ne pas avoir des info bulles dans un style différent sous FF, chrome, windows, mac … et des messages d’erreur SF encore une fois différent. Répondre

Ce qui a été dit au dessus est faux.

Les info bulles gérées par FF et chrome sont des validations HTML5 supportées par ces nav et peut être IE8 (je n’utilise pas IE) Ce que je te conseille de faire c’est de rajouter ‘novalidate’ dans ta balise form cela désactivera la validation côté client. En revanche spécifie bien dans ton formulaire toutes tes contraintes, ainsi tu auras une validation faite par toi côté serveur qui est bien plus secure.

Autre avantage de désactiver la validation html5, tu gères toi même le design de tes messages d’erreur. Si l’aspect de ton site est important tu seras contente de ne pas avoir des info bulles dans un style différent sous FF, chrome, windows, mac … et des messages d’erreur SF encore une fois différent.

dam dit : 2 août 2013 à 11 h 46 min Quel est le but de ce billet étant donné que le fonctionnement de base de symfony fait ce qui est décrit ici ? en prod > page d’erreur de prod (ex : error500.html.twig, error404.html.twig) en dev > la page d’erreur de Sf avec la stack trace Répondre waldo2188 dit : 2 août 2013 à 15 h 13 min Le billet date du 31 oct 2011, le comportement de Symfony2 à ce moment là (version 2.0 voir moins) est celui décrit. Répondre

Quel est le but de ce billet étant donné que le fonctionnement de base de symfony fait ce qui est décrit ici ?

en prod > page d’erreur de prod (ex : error500.html.twig, error404.html.twig) en dev > la page d’erreur de Sf avec la stack trace

waldo2188 dit : 2 août 2013 à 15 h 13 min Le billet date du 31 oct 2011, le comportement de Symfony2 à ce moment là (version 2.0 voir moins) est celui décrit. Répondre

Le billet date du 31 oct 2011, le comportement de Symfony2 à ce moment là (version 2.0 voir moins) est celui décrit.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Commentaire

Nom *

E-mail *

Site web

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées .

English (United States)

Français

.Net Core

Divers

Doctrine

Eclipse

Faites du Web

GWT

Java

JavaScript – AJAX

Jeux

Linux

Mobiles (Android – iPhone)

Outdoor

Outils

PHP

Symfony2

Système : Windows

Ubuntu

Visual Studio

Un café sans Prince sur la crête

Convertir un volume vhdx Hyper-V pour l’utiliser avec KVM ou Proxmox VE

.Net Core exécuter des commandes Bash/Shell

.Net Core application console comment cacher la saisie d’un mot de passe

How to create Nuget Package for .Net Core

septembre 2019 (1)

février 2018 (1)

juillet 2017 (3)

avril 2017 (1)

mars 2017 (1)

juillet 2016 (1)

septembre 2015 (2)

juin 2015 (3)

novembre 2014 (2)

octobre 2013 (4)

janvier 2013 (2)

octobre 2012 (1)

juin 2012 (1)

mai 2012 (1)

février 2012 (1)

janvier 2012 (2)

novembre 2011 (1)

octobre 2011 (1)

septembre 2011 (1)

août 2011 (2)

juin 2011 (1)

avril 2011 (1)

mars 2011 (1)

janvier 2011 (1)

décembre 2010 (1)

novembre 2010 (3)

octobre 2010 (1)

septembre 2010 (3)

juillet 2010 (1)

août 2009 (1)

mai 2009 (1)

avril 2009 (1)

mars 2009 (2)

février 2009 (1)

janvier 2009 (2)

décembre 2008 (3)

octobre 2008 (4)

août 2008 (3)

juillet 2008 (3)

juin 2008 (5)

mai 2008 (2)

avril 2008 (1)

février 2008 (1)

novembre 2007 (1)

septembre 2007 (2)

juillet 2007 (1)

juin 2007 (7)

mai 2007 (2)

avril 2007 (1)

mars 2007 (10)