:::: MENU ::::

Laravel : Personnalisez le « Whoops, looks like something went wrong. »

Utilisateurs de Laravel , je salue. :p

Par défaut Laravel affiche les erreurs en anglais, dans le cas ou votre application est destinée à une clientèle francophone ce n’est pas très propre de laisser des messages s’afficher en anglais, n’est ce pas ?

whoops

Donc si vous êtes, comme moi (maniaque que je suis :p ), du genre à vouloir personnaliser tous vos codes d’erreurs, je vous invite à lire cet article 😉

Ce message « Whoops, looks like something went wrong. » se trouve dans la méthode

cette méthode se trouve dans la classe de gestion d’exceptions

qui elle se trouve dans le package de Symfony…Utilisateur de Laravel que vous êtes, vous savez surement que ce n’est pas une bonne idée de modifier le message ici, mais pourquoi ???

Eh ben c’est pour la simple raison que ça ne fait très propre (Oh !! le maniaque) et surtout que ce package peut être mis à jour (Ah oui !!! donc notre modification va disparaitre).

Pour éviter tout cela nous allons overrider une méthode « convertExceptionToResponse » dans notre gestion d’exception qui se trouve dans

dans ce fichier il suffit d’ajouter ce bout de code :

Ce bout de code va dire à Laravel d’afficher la page (qu’il faut bien évidement créer) en cas d’erreur sur l’application.

Dans le cas ou votre application est en Debug le message d’erreur original de Laravel sera afficher.

oups

Arrivé à la fin de cet article je vous laisse juste un lien sur Github ou cas ou vous n’aimez pas mon blog :p

Gist Laravel 5.2 : Custom Whoops message

Salam !


2 Comments

  • Répondre Alliot Sébastien |

    Bonjour,

    Je trouve ton astuce vraiment superbe!
    Je l’ai testé en local et ça marche très bien, par contre sur le serveur ça m’affiche toujours le Woops (alors que c’est la même config qu’en local) et pour avoir fait des tests la fonction qu’on a override convertExceptionToResponse() n’est même pas exécuté, par contre c’est la fonction render() qui l’est. J’ai essayé de copier coller le code dans cette fonction mais ça ne marche toujours pas, une idée ?

    • Répondre messi89 |

      Salut Sébastien,

      Dans les nouvelles versions de Laravel c’est la méthode render($request, Exception $exception) qui s’occupe de l’affichage de l’exception.

      Donc il suffit de copier mon code depuis l’ancienne méthode convertExceptionToResponse(Exception $e) vers la nouvelle render($request, Exception $exception)

      Il faut juste changer la variable $e en $exception et l’appel
      return parent::convertExceptionToResponse($e); en return parent::render($request, $exception);

      ça devrait être bon

      Salutation;

So, what do you think ?