更改

跳到导航 跳到搜索
添加1,396字节 、 2019年8月23日 (五) 00:20
创建页面,内容为“ yii2自定义异常页面 框架中异常是由yii\web\ErrorHandler类处理,所以继承他并重写(renderException)就好了。 1. 创建类app\compone…”


yii2自定义异常页面

框架中异常是由yii\web\ErrorHandler类处理,所以继承他并重写(renderException)就好了。


1. 创建类app\components\ErrorHandler
<nowiki>
+<?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);
+ }
+ }
+}
</nowiki>

2. 修改config/main.php

<nowiki>
'components'=>[
+ 'errorHandler'=>[
+ 'errorAction' => 'site/error',
+ 'class' => 'app\components\ErrorHandler',
+ ],
],
</nowiki>


当抛出yii\web\UnauthorizedHttpException异常时,就会返回上面定义的<code>{"status": 1001,"msg": "未登录"}</code>了

导航菜单