TP5.0的response数据拦截处理

作者:matrix 发布时间:2018-05-08 分类:零零星星

处理返回数据的时候进行json编码/解码可能会因为不是标准的json字符导致出现一系列的连锁反应问题,没有正确的拦截错误信息的显示。
TP5获取器getAttr中进行json处理,结果出现不可预料的false值,且抛出异常 syntax error 语法错误。很蛋疼啊,明明相应的处理判断,但是错误定位行却是json_encode进行json编码的操作。

后面替换掉以前使用的默认全局函数json()进行自定义json字符输出,解决。

创建自定义Json类

继承\think\response\Json

<?php
/**
 * Created by PhpStorm.
 * User: panc
 * Date: 2018/5/8
 * Time: 上午11:24
 *
 * 自定义处理json的数据【避免json_encode报错:Syntax error 以及各种杂七杂八的问题】
 */

namespace app\common\output;//自定义命名空间


class json extends \think\response\Json
{
//    protected function output($data)  //可以自定义重写数据输出即可  
}

调用Response类输出

控制器中调用执行

//        return json($result);
return new \app\common\output\Json($result);

关键操作如上,虽然只是继承没有任何重写,但是实际上是解决了大问题。可以跟好的控制输出的结果和抛错。

peace~