“Yii2”的版本间的差异
跳到导航
跳到搜索
(创建页面,内容为“ yii2自定义异常页面 框架中异常是由yii\web\ErrorHandler类处理,所以继承他并重写(renderException)就好了。 1. 创建类app\compone…”) |
|||
第1行: | 第1行: | ||
− | yii2自定义异常页面 | + | == yii2自定义异常页面 == |
框架中异常是由yii\web\ErrorHandler类处理,所以继承他并重写(renderException)就好了。 | 框架中异常是由yii\web\ErrorHandler类处理,所以继承他并重写(renderException)就好了。 |
2019年8月23日 (五) 00:21的版本
yii2自定义异常页面
框架中异常是由yii\web\ErrorHandler类处理,所以继承他并重写(renderException)就好了。
1. 创建类app\components\ErrorHandler
+<?php +/** + * @link http://www.yiiframework.com/ + * @copyright Copyright (c) 2008 Yii Software LLC + * @license http://www.yiiframework.com/license/ + */ + +namespace app\components; + +use Yii; +use yii\base\ErrorException; +use yii\base\Exception; +use yii\web\ErrorHandler as BaseErrorHandler; +use yii\helpers\VarDumper; +use \yii\web\Response; + +class ErrorHandler extends BaseErrorHandler +{ + protected function renderException($exception) + { + if ($exception instanceof \yii\web\UnauthorizedHttpException) { + $response = new Response(); + $response->format = Response::FORMAT_JSON; + $response->data = ["status"=>1001,"msg"=>"未登录"]; + $response->send(); + return; + }else{ + return parent::renderException($exception); + } + } +}
2. 修改config/main.php
'components'=>[ + 'errorHandler'=>[ + 'errorAction' => 'site/error', + 'class' => 'app\components\ErrorHandler', + ], ],
当抛出yii\web\UnauthorizedHttpException异常时,就会返回上面定义的{"status": 1001,"msg": "未登录"}
了