X

Laravel 5.0 – Pages d’erreur personnalisées


Lorsque vous vouliez personnaliser vos pages d’erreur, par exemple, en affichant un GIF de chat particulier lorsque vos utilisateurs frappent un 404, vous le feriez sur Google et suivez ces instructions de Dries Vints.

Dans Laravel 5, les choses ont un peu changé. TL;DR m’emmène déjà à la solution

Tracez-le à travers le code

Désormais, toute la gestion personnalisée des erreurs et des exceptions a été déplacée vers app/Exceptions/Handler.php. Vous vous souviendrez que c’est là que nous sommes allés pour ramener Whoops.

Vous remarquerez cependant qu’il le fait par défaut :

    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $e
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $e)
    {
        if ($this->isHttpException($e))
        {
            return $this->renderHttpException($e);
        }
        else
        {
            return parent::render($request, $e);
        }
    }

Pour toutes les exceptions HTTP (comme 404 et 503), il utilise le renderHttpException() méthode, qui n’est pas définie dans ce fichier. Donc, nous vérifions son parent, \Illuminate\Foundation\Exceptions\Handleroù l’on peut trouver renderHttpException() méthode:

    /**
     * Render the given HttpException.
     *
     * @param  \Symfony\Component\HttpKernel\Exception\HttpException  $e
     * @return \Symfony\Component\HttpFoundation\Response
     */
    protected function renderHttpException(HttpException $e)
    {
        if (view()->exists('errors.'.$e->getStatusCode()))
        {
            return response()->view('errors.'.$e->getStatusCode(), [], $e->getStatusCode());
        }
        else
        {
            return (new SymfonyDisplayer(config('app.debug')))->createResponse($e);
        }
    }

Donc, si la vue existe pour “errors. {httpStatusCode}”, elle l’affichera (et transmettra un peu d’informations).

Comment fais-tu

Donc, si nous avons un fichier de vue accessible à “errors. {errorStatusCode} », il s’affichera automatiquement pour ce code d’état.

Cela signifie donc que personnaliser votre page d’erreur 404 est aussi simple que d’ajouter une vue à resources/views/errors/404.blade.php. Fait!