背景
早在开始了解ThinkPHP时就一直记得一段话:
在一开始无知的我以为出现错误后能在调试阶段优雅的了解错误信息,但结果大家试一下便知道,十分尴尬。尤其是当在小程序里请求api,在过程中发生错误时更是无比尴尬。
原本理想的解决方法
按照官方文档的说法,那么这样的请求头不就好了吗?
实际上…这对于后端来说取出参数将会变得十分不优雅。如果是application/x-www-form-urlencoded
,那么我们轻松利用$_POST['name']
或ThinkPHP提供的Request::param('name')
获取,但是如果变为了Json…那么很可惜,我还没有找到十分靠谱的方案,那么到底该如何解决呢?
1.修改默认错误信息模板文件
src/tpl/think_exception.tpl为异常页面的模板文件,在其head标签存有很多样式代码,如果删去他们便可以在狭小的窗口直接定位问题。
删去标签包裹的所有内容
在此处还有信息,大家可以按需修改或者删除
注意:这些更改会在更新框架后被重置。
2.干掉默认错误信息模板文件
在此处我们可以修改配置来让我们返回想要的信息,例如把他导向一个404.json
{
"code" : 404,
"msg" : "资源不存在~",
"data" : []
}
当然,这样子就丢失了能够调试的信息。不过理论上,我们肯定有抽离/修改原错误模版代码来实现优雅返回的问题。
到现在,我们解决了调试的问题,不过还有一些问题例如请求了不存在的controller,方法时还是会返回一些很简单没必要使用html返回的错误,我们将在下周通过对我们编写接口的逻辑来解决其不够优雅(被人看出用ThinkPHP框架)的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)