Laravel 5.2 作为APP后端开发修改系统错误成返回json


因为项目原因没办法为了快速上手只有用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数据  代码就自己修改了 需要什么样的自己改


每天遇到问题就记录下 希望跟我一样遇见这些问题的朋友们能有个解决方案

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值