laravel框架 api自定义全局异常处理方法


Posted in PHP onOctober 11, 2019

api返回实现

$result = User::find($id);
if(empty($result)){
  throw new ApiException('获取失败');
}
else{
  return json_decode($result);
}

api返回信息

{
  "msg": "",
  "data": "获取失败",
  "status": 0
}

1,添加异常类

namespace App\Exceptions;


class ApiException extends \Exception
{

  function _construct($msg='')
  {
    parent::_construct($msg);
  }

}

2,修改laravel异常类u。。。

namespace App\Exceptions;


public function render($request, Exception $e)
{
  if ($e instanceof ApiException){
    $result = [
      "msg" => "",
      "data"=>$e->getMessage(),
      "status"=>0
    ];
    return response()->json($result);
  }
  return parent::render($request, $e);

考虑开发配置时

public function render($request, Exception $e)
{
 
  if(config('app.debug')){
    return parent::render($request,$e);
  }
  return $this->handle($request,$e);
}

public function handle($request,Exception $e){
  if ($e instanceof ApiException){
    $result = [
      "msg" => "",
      "data"=>$e->getMessage(),
      "status"=>0
    ];
    return response()->json($result);
  }

  return parent::render($request, $e);
}

以上这篇laravel框架 api自定义全局异常处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
理解PHP5中static和const关键字的区别
Mar 19 PHP
php笔记之常用文件操作
Oct 12 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
Jun 09 PHP
php中hashtable实现示例分享
Feb 13 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
php简单socket服务器客户端代码实例
May 18 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
Yii使用DbTarget实现日志功能的示例代码
Jul 21 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 #PHP
laravel 获取当前url的别名方法
Oct 11 #PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 #PHP
解决PHP使用CURL发送GET请求时传递参数的问题
Oct 11 #PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 #PHP
零基础php编程好学吗
Oct 11 #PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 #PHP
You might like
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
提升PHP速度全攻略
2006/10/09 PHP
php定时执行任务设置详解
2015/02/06 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
jQuery中add实现同时选择两个id对象
2010/10/22 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
通过AngularJS实现图片上传及缩略图展示示例
2017/01/03 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
2018/05/15 Javascript
浅谈开发eslint规则
2018/10/01 Javascript
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
Python 初始化多维数组代码
2008/09/06 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
Python引用传值概念与用法实例小结
2017/10/07 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python实现车牌识别的示例代码
2019/08/05 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
Python 随机按键模拟2小时
2020/12/30 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
医学生自荐信范文
2013/12/03 职场文书
采购助理岗位职责
2014/02/16 职场文书
纺织工程专业推荐信
2014/09/08 职场文书
学习计划是什么
2019/04/30 职场文书