因为项目原因没办法为了快速上手只有用PHP做后端开发,TP效率不咋样 所以直接上手的laravel 5.2 但是感觉还是挺复杂的需要花时间研究.
因为程序出错是难以避免的,毕竟一般很多开发都没有专业的testing,app接受数据都是json格式,但是系统默认报错会直接输出html代码,如果app请求出错必然会返回html代码无法识别,所以我吧系统默认的报错修改了下,
先看看效果
修改后任何报错都会用json 格式输出:
没修改前会直接输出错误信息,
APP_DEBUG设置false的时候还是会输出html
懒得废话了 直接点, 找了很久找到的输出文件
\vendor\laravel\framework\src\Illuminate\Foundation\Exceptions\Handler.php
找到这个文件里面的函数 toIlluminateResponse 第123行
把里面的代码替换为:
protected function toIlluminateResponse($response, Exception $e)
{
if(config('app.debug'))
{
$response = new Response($response->getContent(), $response->getStatusCode(), $response->headers->all());
$response->exception = $e;
return $response;
}
else
{
$return_arr =array(
'resultcode'=>500,
'reason'=>'error',
'result'=>array(
'data'=>array('reason'=>'服务器端发生系统错误!','error_code'=>$response->getStatusCode(),'time'=>time()),
));
$response = new Response($return_arr, 200, $response->headers->all());
$response->exception = $e;
return $response;
}
}
一眼就能看懂对吧? 你在测试开发的时候还是会照样输出错误信息详情,但是部署上线的时候就会输出json数据 代码就自己修改了 需要什么样的自己改
每天遇到问题就记录下 希望跟我一样遇见这些问题的朋友们能有个解决方案