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 相关文章推荐
ThinkPHP中数据操作案例分析
Sep 27 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
Jan 11 PHP
PHP的几个常用加密函数
Feb 03 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
phpstudy默认不支持64位php的解决方法
Feb 20 PHP
ThinkPHP 3.2.2实现事务操作的方法
May 05 PHP
PHP实现的分页类定义与用法示例
Jul 05 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 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的宝库目录--PEAR
2006/10/09 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
cakephp常见知识点汇总
2017/02/24 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
Node.js安装教程和NPM包管理器使用详解
2014/08/16 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
js a标签点击事件
2017/03/30 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
JavaScrip数组删除特定元素的几种方法总结
2017/09/06 Javascript
分享5个好用的javascript文件上传插件
2018/09/16 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
python端口扫描系统实现方法
2014/11/19 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Python 面试中 8 个必考问题
2018/11/16 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
python爬虫模拟浏览器的两种方法实例分析
2019/12/09 Python
Python面向对象实现方法总结
2020/08/12 Python
Python截图并保存的具体实例
2021/01/14 Python
HTML5梦幻之旅——炫丽的流星雨效果实现过程
2013/08/06 HTML / CSS
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
Needle & Thread官网:英国仙女品牌
2018/01/13 全球购物
大学生安全责任书
2014/07/25 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
2016高中社会实践心得体会范文
2016/01/14 职场文书
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL