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 相关文章推荐
生成缩略图
Oct 09 PHP
COM in PHP (winows only)
Oct 09 PHP
Breeze 文章管理系统 v1.0.0正式发布
Dec 14 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
用php随机生成福彩双色球号码的2种方法
Feb 04 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
php使用Cookie控制访问授权的方法
Jan 21 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
PHP实现简单用户登录界面
Oct 23 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
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
js 函数性能比较方法
2020/08/24 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
python web框架学习笔记
2016/05/03 Python
python生成随机图形验证码详解
2017/11/08 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
python打造爬虫代理池过程解析
2019/08/15 Python
python的命名规则知识点总结
2019/10/04 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
文明生主要事迹
2014/05/25 职场文书
2014年民政工作总结
2014/11/26 职场文书
酒桌上的开场白
2015/06/01 职场文书
画展观后感
2015/06/17 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
《原神》新角色演示“神里绫人:林隐泓洄” 宠妹狂魔
2022/04/03 其他游戏
TS 类型收窄教程示例详解
2022/09/23 Javascript