php 500 yii,yii2如何自定义500错误

5c12c992421fb67f3a5c4326fc657cb5.png

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 = '@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);

}

}

}

推荐教程:yii框架

2、创建视图文件 : @app/views/errorHandler/error.php<?php

/**

* User: szliugx@gmail.com

* Date: 2016/9/20

* Time: 15:23

*/

?>

<?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?>

<?php if(!empty($exception->getCode())&&($exception->getCode() == 8)){echo "出错啦";}else{ echo $exception->getMessage();}?>

3、修改应用的配置文件:@app/config/main.php'errorHandler' => [

//'errorAction' => 'site/error',

'class' => 'common\component\exception\ErrorHandler',

],

效果如下:

500错误页:

13b9e4764afa0dd93a49a337c20c5383.png

404错误页:

3dcfc70b2f3832a846ff341aaaef59b8.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值