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 相关文章推荐
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
php通用防注入程序 推荐
Feb 26 PHP
php实现的CSS更新类实例
Sep 22 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
Oct 30 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
Symfony2学习笔记之系统路由详解
Mar 17 PHP
safari下载文件自动加了html后缀问题
Nov 09 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
基于PHP的微信公众号的开发流程详解
Aug 07 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 反射机制实现动态代理的代码
2008/10/22 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
什么是PHP7中的孤儿进程与僵尸进程
2019/04/14 PHP
php使用pecl方式安装扩展操作示例
2019/08/12 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
JavaScript中自定义事件用法分析
2014/12/23 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
jQuery layui常用方法介绍
2016/07/25 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
JavaScript中this的用法实例分析
2016/12/19 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
在小程序开发中使用npm的方法
2018/10/17 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
Python中列表的一些基本操作知识汇总
2015/05/20 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
python机器学习之神经网络(三)
2017/12/20 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
pytorch __init__、forward与__call__的用法小结
2021/02/27 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
杭州联环马网络笔试题面试题
2013/08/04 面试题
商场消防演习方案
2014/02/12 职场文书
实习生岗位职责
2014/04/12 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
Nginx本地目录映射实现代码实例
2021/03/31 Servers
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
java实现对Hadoop的操作
2021/07/01 Java/Android