ThinkPHP5.0自定义异常页面教程


Tips:本文发布于 733 天前,文中部分内容可能已经过时,请以当前最新信息为准。

本教程的目的是更改ThinkPHP5.0的默认错误页面,一般情况下错误页面应该和网站风格一致,所以这里我自定义错误类,在错误类里转交给控制器输出错误页面。


注意:本教程效果在配置文件app_debug设置为false的情况下才有效。


1、编写异常监听类文件http.php,这里我放置的位置为application/index/common/http.php

namespace app\index\common;
use think\exception\Handle;
use think\exception\HttpException;
/**
 * Class http
 * @package app\index\common
 */
class http extends Handle
{
    public function render(\Exception $e)
    {
        if ($e instanceof HttpException) {
            $statusCode = $e->getStatusCode();
        }
        return redirect('Error/Index');
    }
}


上面代码的意思为出现错误,就转到Error/Index方法,这个我没有详细判断错误代码,全部转到同一个页面,如果你需要404和500等转到不同的页面显示,只需判断$statusCode的值就行了。



2、写异常页面Error/Index


namespace app\index\controller;
/**
 * Class Error
 * @package app\index\controller
 */
class Error extends Controller
{
    public function Index(){
        return '天啊,出错了!';
    }
}


上面代码我只是简单的输出的一句话,实际项目你可以任意发挥设计错误页面。



3、配置Config.php,使用我们的自定义异常类


// 异常处理handle类 留空使用 \think\exception\Handle
'exception_handle'       => '\\app\\index\\common\\http',


只需配置exception_handle参数,值为我们刚刚定义的异常类的命名空间地址。


现在你就可以访问自己的项目,有错误抛出,如果显示 “天啊,出错了!”,那就证明配置成功了,接下来就自己发挥,打造自己的错误页面。

发表评论
内容支持 markdown 语法编写,如需添加图片,请使用外链方式添加。
验证码
已有 0 条评论