Laravel怎样使错误异常处理为JSON?
Admin 2021-04-27 群英技术资讯 1185 次浏览
在开发过程中,我们常需要做异常处理,如果使用try...catch比较麻烦,那么有没有其他方法呢?这篇文章就给大家介绍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的方法,其他形式的错误输出大家可以自行扩展,希望本文对大家学习有帮助。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php接入workerman的方法:新建文件start.php,在此文件中创建一个Worker监听2346端口,使用websocket协议通讯即可在php中接入workerman,然后运行此文件即可在php中启动workerman。
php怎么对用户在线状态进行检测?写PHP登录注册时,我们往往要对用户在线状态进行检测,很多新手不知道这一需求要如何实现,这篇文章就给大家分享php实现检测用户在线状态的代码,供大家参考学习。
这篇文章主要介绍了php 多个变量指向同一个引用($b = &$a)用法,结合实例形式分析了PHP变量引用原理、优缺点及相关操作技巧,需要的朋友可以参考下
在本篇文章里小编给大家整理了一篇关于php substr()去掉最后一位字符的实例方法,有兴趣的朋友们可以跟着学习下。
单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此有些设计大师并把把其称为设计模式之一。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008