Maison >cadre php >Laravel >Explication détaillée de la façon de configurer 404 et autres pages d'exception dans le framework laravel (exemple de code)

Explication détaillée de la façon de configurer 404 et autres pages d'exception dans le framework laravel (exemple de code)

不言
不言avant
2019-01-07 11:09:194443parcourir

Cet article vous apporte une explication détaillée (exemple de code) de la façon de configurer 404 et d'autres pages d'exception dans le framework laravel. Il a une certaine valeur de référence, j'espère. Cela vous aidera.

Toutes les exceptions dans Laravel sont gérées par la classe Handler, qui contient deux méthodes : report et render, où la méthode render restitue l'exception dans la réponse http. Emplacement du fichier de classe Handler de Laravel : app/Exceptions/Handler. Étant donné que l'exception temporelle de la méthode de rendu est rendue dans la réponse http, il suffit de modifier la méthode de rendu
De nombreuses méthodes sur Internet consistent à modifier la méthode de rendu pour :

public function render($request, Exception $exception)
{
    if ($exception) {
        return response()->view('error.'.$exception->getStatusCode(), [],$exception->getStatusCode());
    }
    return parent::render($request, $exception);
}

Il se peut qu'il n'y ait aucun problème avec votre test pour le moment, mais si vous écrivez une méthode de connexion, si vous visitez une page qui nécessite une connexion, une erreur sera signalée à ce moment

Explication détaillée de la façon de configurer 404 et autres pages dexception dans le framework laravel (exemple de code)

En effet, si vous visitez une page sur laquelle vous devez vous connecter, vous entrerez dans la méthode de rendu app/Exceptions/Handler.php $exception->. ;getStatusCode() n'existe pas, et une erreur sera signalée à ce moment-là. Alors, comment la résoudre ?

À ce moment, nous trouvons la méthode parent::render :

Explication détaillée de la façon de configurer 404 et autres pages dexception dans le framework laravel (exemple de code)

À ce moment, nous constatons que le framework laravel a déjà converti notre Cette situation est incluse, alors nous pouvons changer la méthode ci-dessus en :

public function render($request, Exception $exception)
{
    if (!($exception instanceof AuthenticationException)) {
        return response()->view('error.'.$exception->getStatusCode(), [],$exception->getStatusCode());
    }
    return parent::render($request, $exception);
}

Ce problème est parfaitement résolu à ce moment
Créez ensuite une nouvelle page d'erreur sous resources/view/error/ , la page d'erreur est nommée : {errorcode}..balde.php, où errorcode est le code d'erreur, tel que 404..balde.php

Une fois la configuration terminée, vous pouvez sauter lorsque vous accédez à un non- route existante Rendez-vous sur la page 404 que vous avez configurée


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer