时间:2021-05-26
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,便不会使用自带的错误处理,而使用自定义的处理。
<?phpnamespace App\Exceptions;use Exception;use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;class Handler extends ExceptionHandler{ /** * 一些不需管或不需要抛出的异常 */ protected $dontReport = [ ApiException::class, ]; ...}我们测试一下:
<?phpnamespace 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内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本教程介绍了PHP中一些最为重要的错误检测方法。我们将为您讲解不同的错误处理方法:简单的"die()"语句自定义错误和错误触发器错误报告基本的错误处理:使用di
本文实例讲述了Laravel框架基于自带的用户系统实现登录注册及错误处理功能。分享给大家供大家参考,具体如下:一、默认Laravel不会自动帮你装上用户系统,二
本文为大家分享了nodejs个人博客开发的入口文件,具体内容如下错误处理中间件定义错误处理中间件必须使用4个参数,否则会被作为普通中间件app
laravel框架中默认的validate验证,在处理错误的时候,默认是返回上一页,当为ajax的时候才会返回Json。如果我们要一直返回Json的话,那么需要
在PHP中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。PHP错误处理在创建脚本和Web应用程序时,错误处理