基于 ThinkPHP 框架项目修改报错信息返回格式为 JSON

分类:Linux 评论: 0

在前后分离开发中,如 Vue.js ,后台只能返回json格式。在参数验证中希望抛出异常,并由repsonse统一处理,返回json。而默认的异常处理都是返回页面,因而需要调整。

解决

查找资料后得知,在框架内的 library/think/exception/Handle.php 文件修改即可。

约 #180 处,查找关键字 exception_tmpl

        //include Config::get('exception_tmpl');
        // 获取并清空缓存
        //$content  = ob_get_clean();
        //$response = new Response($content, 'html');
        $json_return = array('status' => 555, 'msg' => "服务器忙碌,请稍后重试!", 'data' => '[]');
        $content = json_encode($json_return,JSON_UNESCAPED_UNICODE);
        $response = new Response($content, 'json');

小贴士:必须注释开头处的 include 行,否则将输出默认报错页面并附带 JSON 字符串。

附录

参考链接

回复