首页 php框架 YII yii2如何自定义500错误

yii2如何自定义500错误

Feb 20, 2020 pm 04:15 PM
500 yii2

yii2如何自定义500错误

1、创建ErrorHandler,继承这个yii\base\ErrorHandler抽象类,然后定义这个父类中的抽象方法

<?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 = &#39;@app/views/errorHandler/error.php&#39;;
    public function renderException($exception)
    {
        if(Yii::$app->request->getIsAjax()){
            exit( json_encode( array(&#39;code&#39; =>$exception->getCode(),&#39;msg&#39;  =>$exception->getMessage()) ));
        }else{
            //将500的代码,发送监控预警
            if(!empty($exception->getCode()) && $exception->getCode() ==8){
                $params = [];
                $params[&#39;projectName&#39;] = "oct-youban";
                $params[&#39;level&#39;] = 5;
                $params[&#39;title&#39;] = "500:".$exception->getMessage();
                $params[&#39;value&#39;] = $exception->getCode();
                $params[&#39;message&#39;] = $exception->getFile().":".$exception->getLine();
                $params[&#39;bizcode&#39;] = 8;
                $params[&#39;subcode&#39;] = 8001;
                EarlyWarning::WarninApi($params);
            }
            echo  Yii::$app->getView()->renderFile($this->errorView,[&#39;exception&#39; => $exception,],$this);
        }
    }
}
登录后复制

推荐教程:yii框架

2、创建视图文件 : @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、修改应用的配置文件:@app/config/main.php

&#39;errorHandler&#39; => [
            //&#39;errorAction&#39; => &#39;site/error&#39;,
            &#39;class&#39; => &#39;common\component\exception\ErrorHandler&#39;,
        ],
登录后复制

效果如下:

500错误页:

f08fcd2a753306a28c23099a55ec82a.png

404错误页:

5e0b460a58c2f66f2413b09908017c4.png

更多编程相关内容,请关注php中文网编程入门栏目!

以上是yii2如何自定义500错误的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

yii2 怎么去掉jquery yii2 怎么去掉jquery Feb 17, 2023 am 09:55 AM

yii2去掉jquery的方法:1、编辑AppAsset.php文件,注释掉变量$depends里的“yii\web\YiiAsset”值;2、编辑main.php文件,在字段“components”下面添加配置为“'yii\web\JqueryAsset' => ['js' => [],'sourcePath' => null,],”即可去掉jquery脚本。

精选几道CTF习题,带你学习yii2框架! 精选几道CTF习题,带你学习yii2框架! Feb 23, 2022 am 10:33 AM

本篇文章带大家了解yii2框架,分享几道CTF习题,通过它们来学习yii2框架,希望对大家有所帮助。

500internal server error什么意思 500internal server error什么意思 Feb 21, 2023 pm 03:39 PM

500internal server error的意思是HTTP 500内部服务器错误,表示服务器遇到意外情况,导致其无法履行请求,但它无法说明具体错误或发生错误的根本原因;当发生错误时,访问的网站会显示发生错误。

怎么使用YII2框架安装Redis扩展 怎么使用YII2框架安装Redis扩展 May 26, 2023 pm 06:41 PM

1.需要下载yii2-redis的master分支windows版本composer下载2.解压复制到vendor/yiisoft下面3.yiisoft下面extensions.php里面增加'yiisoft/yii2-redis'=>array('name'=>'yiisoft/yii2-redis','version'=>'2.0.

敦促英国人在家检查是否有稀有的 50 便士硬币,可能价值 2,500 英镑 敦促英国人在家检查是否有稀有的 50 便士硬币,可能价值 2,500 英镑 Oct 28, 2024 pm 04:20 PM

据一位专家称,这枚 2011 年的作品是为庆祝 2012 年伦敦奥运会而铸造的

以太坊 (ETH) 价格恢复至 2,320 美元上方,但仍难以加快步伐 以太坊 (ETH) 价格恢复至 2,320 美元上方,但仍难以加快步伐 Sep 10, 2024 pm 03:20 PM

以太坊价格在 2,250 美元上方开始复苏浪潮。 ETH 能够清除 2,280 美元的阻力区域,进入积极区域,但与比特币相比,势头较弱。

比特币 (BTC) 价格分析:BTC 开始大幅上涨,目标为 60,000 美元大关 比特币 (BTC) 价格分析:BTC 开始大幅上涨,目标为 60,000 美元大关 Sep 12, 2024 pm 06:35 PM

比特币已经开始大幅上涨,突破了 57,500 美元的阻力位,现在显示出可能达到 60,000 美元大关的良好迹象。

英国人敦促检查他们的 50 便士硬币,因为稀有版本可能价值 2500 英镑 英国人敦促检查他们的 50 便士硬币,因为稀有版本可能价值 2500 英镑 Oct 28, 2024 pm 04:24 PM

2011 年硬币是为庆祝 2012 年伦敦奥运会而铸造的,被称为“水上运动”设计,并带有游泳运动员的形象

See all articles