在前后分离开发中,如 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 字符串。
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2019-07-24 14:42 PM
。。。直接修改源码那么暴力的吗?最优的方法是捕获异常,一搬我会封装统一返回json格式
能解决问题就是好办法,哈哈。