Paramètres de la page d'erreur yii 500
Erreur 500 personnalisée yii2
Étant donné que le projet souhaite ajouter une surveillance d'alerte précoce, l'une d'entre elles implique 500 erreurs dans le programme. Ces niveaux d'erreur sont relativement élevés, il est donc nécessaire de capturer ces erreurs. D'ailleurs, j'ai personnalisé un style de vue
<.>Apprentissage recommandé : Après avoir lu ce blog, je sais comment personnaliser ma propre page d'erreur : http://tech.lubanr.com/2015/12/12/ Mécanisme de gestion des erreurs et des exceptions du framework yii2-0/ Si nous devons personnaliser notre propre méthode de gestion des exceptions, tout ce que nous avons à faire est d'hériter de yiibaseErrorHandler, d'écrire une renderException personnalisée et enfin de personnaliser notre propre errorHandler en $ config1. Créez un ErrorHandler, héritez de cette classe abstraite yiibaseErrorHandler, puis définissez la méthode abstraite dans cette classe parent<?php namespace common\component\exception; /** * User: szliugx@gmail.com * Date: 2016/9/20 * Time: 14:24 */ use yii; use yii\base\ErrorHandler as BaseErrorHandler; use common\component\earlywarning\EarlyWarning; class ErrorHandler extends BaseErrorHandler { public $errorView = '@app/views/errorHandler/error.php'; public function renderException($exception) { if(Yii::$app->request->getIsAjax()){ exit( json_encode( array('code' =>$exception->getCode(),'msg' =>$exception->getMessage()) )); }else{ //将500的代码,发送监控预警 if(!empty($exception->getCode()) && $exception->getCode() ==8){ $params = []; $params['projectName'] = "oct-youban"; $params['level'] = 5; $params['title'] = "500:".$exception->getMessage(); $params['value'] = $exception->getCode(); $params['message'] = $exception->getFile().":".$exception->getLine(); $params['bizcode'] = 8; $params['subcode'] = 8001; EarlyWarning::WarninApi($params); } echo Yii::$app->getView()->renderFile($this->errorView,['exception' => $exception,],$this); } } }Créez un fichier de vue : @. app/views/errorHandler/ error.php
<?php /** * User: szliugx@gmail.com * Date: 2016/9/20 * Time: 15:23 */ ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="format-detection" content="telephone=no"> <meta http-equiv="Expires" content="-1"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Pragma" content="no-cache"> <title><?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?></title> <link href="/css/error.css" rel="stylesheet" 0="frontend\assets\AppAsset"> </head> <body> <div> <div class="status-icon icon-desk"></div> <div> <p><?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?></p> </div> </div> </body> </html>3. Modifiez le fichier de configuration de l'application : @app/config/main.php
'errorHandler' => [ //'errorAction' => 'site/error', 'class' => 'common\component\exception\ErrorHandler', ],Modifiez les trois endroits ci-dessus, vous pouvez atteindre l'objectif souhaité, l'effet est le suivant : Page d'erreur 500 : Page d'erreur 404 :
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!