thinkphp6异常处理:重新定义render方法的代码

知识技术 2022-06-18 19:29 823
转载请务必注明: 来源:《建站管家》https://www.df81.com/news/390.html
thinkphp6异常处理:

app\ExceptionHandle.php 异常处理类,重新定义render方法即可,代码如下:
/**
     * Render an exception into an HTTP response.
     *
     * @access public
     * @param \think\Request   $request
     * @param Throwable $e
     * @return Response
     */
    public function render($request, Throwable $e): Response
    {
        // app_debug模式下按原thinkphp6异常模式处理异常
        if (env('app_debug')) {
            return parent::render($request, $e);
        }

         // 获取当前访问应用
        $app_name = app('http')->getName();
        switch ($app_name) {
            case 'admin':
                // 自定义json返回错误
                if ($e instanceof ValidateException) {
                    // return json($e->getError(), 422);
                    return json(['code' => 0, 'msg' => $e->getError()], 422);
                }

                // 自定义json返回异常
                if ($e instanceof HttpException && $request->isAjax()) {
                    return json(['code' => 0, 'msg' => $e->getMessage()], $e->getStatusCode());
                }
                // 自定义json返回异常
                if ($e instanceof HttpException) {
                    return json(['code' => 0, 'msg' => $e->getMessage()]);
                }
                // 自定义json返回异常
                $errorData = [
                    'code'      => 0,
                    'msg'       => $e->getMessage(),
                    'errorcode' => $e->getCode(),
                    'result'    => '未知错误,请开启调试模式。Unknown error, please turn on debugging mode'
                ];
                return json($errorData);
                break;
            default:
                return parent::render($request, $e);
                break;
        }
    }

点赞 (0)

收藏 (0)

本站部分信息来源网络,如有侵权,请联系QQ:1062129401删除。

上一篇: 《建站管家》二次开发文档

下一篇: git push失败,提示fatal: The current branch master has no upstream branch的解决办法

请先登录后,再发表评论 ~ ~
发表评论
发表评论
发表帖子
广告位招租( ¥5 / 天 )
点击咨询
相关帖子

如果要判断文件是否存在,用函数 is_file(),如果要判断目录是否存在,用函数 is_dir()
用宝塔安装TP程序后,网站前台可以访问,后台无法访问,不是程序问题,而是web服务器环境配置问题(PHP配置),出现这种问题,一般是windows主机安装宝塔造成的,linux安装宝塔不会出现此错误
广告位招租( ¥3 / 天 )
点击咨询
广告位招租( ¥2 / 天 )
点击咨询
广告位招租( ¥1 / 天 )
点击咨询
最新帖子

小朋友,你爸爸是谁啊?这很单纯的,就像我们碰到别人会问:你吃过饭了吗?类似;许多人初次相识,经常会问:你是做什么的啊?你做什么,好像决定你收入的高低,你,资产的范围
1、升级框架到ThinkPHP8.0.3【要求PHP8.1+环境,推荐PHP8.1】 2、启用/禁用调试模式等小细节改进
后台点击生成站点地图 一直转圈圈没有反应,
在线客服