• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Laravel统一错误处理为JSON的方法介绍

    Laravel中的AppExceptionsHandler 类负责记录应用程序触发的所有异常,这在我们开发过程中十分方便,总是try...catch使代码太过繁琐且可读性大大降低,那么怎么使用它处理异常为json呢?

    方法如下:

    我们可以新建一个class,用来处理异常返回。

    ?php
    /**
     * Author: sai
     * Date: 2020/1/15
     * Time: 14:31
     */
    
    namespace App\Exceptions;
    
    
    class ApiException extends \Exception
    {
     const ERROR_CODE = 1001;
     const ERROR_MSG = 'ApiException';
    
     private $data = [];
    
     /**
      * BusinessException constructor.
      *
      * @param string $message
      * @param string $code
      * @param array $data
      */
     public function __construct(string $message, string $code, $data = [])
     {
      $this->code = $code ? : self::ERROR_CODE;
      $this->message = $message ? : self::ERROR_MSG;
      $this->data = $data;
     }
    
     /**
      * @return array
      */
     public function getData()
     {
      return $this->data;
     }
    
     /**
      * 异常输出
      */
     public function render($request)
     {
      return response()->json([
       'data' => $this->getData(),
       'code' => $this->getCode(),
       'messgae' => $this->getMessage(),
      ], 200);
     }
    }

    然后我们在Handler加入,加入$dontReport,便不会使用自带的错误处理,而使用自定义的处理。

    ?php
    
    namespace App\Exceptions;
    
    use Exception;
    use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
    
    class Handler extends ExceptionHandler
    {
     /**
      * 一些不需管或不需要抛出的异常
      */
     protected $dontReport = [
      ApiException::class,
     ];
    
     ...
    }

    我们测试一下:

    ?php
    
    namespace App\Http\Controllers;
    
    use App\Exceptions\ApiException;
    use Illuminate\Http\Request;
    
    class HomeController extends Controller
    {
     public function index(Request $request)
     {
      throw new ApiException('error', 10001, ['oh' => 'no']);
      return 1;
     }
    }
    

    查看输出:

    测试ok,我们可以愉快的使用啦。当然,其他形式的错误输出可以自行扩展。

    总结

    到此这篇关于Laravel统一错误处理为JSON的文章就介绍到这了,更多相关Laravel统一错误处理为JSON内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Laravel相关的一些故障解决
    • composer安装的方法步骤(图文)
    • Laravel 解决composer相关操作提示php相关异常的问题
    • laravel 实现向公共模板中传值 (view composer)
    • 浅谈laravel 5.6 安装 windows上使用composer的安装过程
    • Laravel快速入门之composer介绍及安装详细图文步骤
    上一篇:Yii中特殊行为ActionFilter的使用方法示例
    下一篇:php实现记事本案例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Laravel统一错误处理为JSON的方法介绍 Laravel,统一,错误,处理,为,