ThinkPHP5.0自定义异常页面教程
本教程的目的是更改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参数,值为我们刚刚定义的异常类的命名空间地址。
现在你就可以访问自己的项目,有错误抛出,如果显示 “天啊,出错了!”,那就证明配置成功了,接下来就自己发挥,打造自己的错误页面。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果