• 技术文章 >php框架 >ThinkPHP

    分析 thinkphp5 显示render不兼容问题

    藏色散人藏色散人2021-11-29 15:19:49转载390
    下面thinkphp框架教程栏目将给大家介绍关于TP5自定义全局异常处理提示render不兼容问题,希望对需要的朋友有所帮助!

    TP5自定义全局异常处理,所有抛出的异常都通过自定义render方法渲染,再返回客户端显示。
    需要自定义handle的render方法并覆盖:

    namespace app\lib\exception;  
      
    use think\Exception;  
    use think\exception\Handle;
    class ExceptionHandler extends Handle  
    {  
      public function render(Exception $e)  
        {  
            //TODO:
            return json('invalid request')
        }  
    }

    之后出现postman检验接口出现如下错误提示不兼容:
    7ef7de5acd6b1c23c64f776450b86f8.png

    追踪到原始的Handle.php文件,
    d3a44201e8caf6d2c8088cb19eb544b.png

    查看下use,发现源文件用的是Exception,而我用的think\Exception
    0fdc1da2ce7a5455ba21c0bcad4fb6b.png

    修改下代码:

    namespace app\lib\exception;  
      
    use Exception;  
    use think\exception\Handle;
    class ExceptionHandler extends Handle  
    {  
      public function render(Exception $e)  
        { 
            //TODO:
            return json('invalid request')
        }  
    }

    结果正确啦:
    4988b6a328ced2cbb43d0b550662b95.png

    以上就是分析 thinkphp5 显示render不兼容问题的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:thinkphp5.1 php框架
    上一篇:简单聊聊 THINKPHP的模板技术 下一篇:TP框架中的钩子怎么配置调用(附代码实例)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 说说Thinkphp5.1实现邮箱验证问题• 如何解决thinkphp new self()报错问题• 一文讲解thinkphp引用PHPExcel类库的方法• 简单聊聊 THINKPHP的模板技术
    1/1

    PHP中文网