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的宝库目录--PEAR
Oct 09 PHP
PHP中在数据库中保存Checkbox数据(2)
Oct 09 PHP
php xml文件操作实现代码(二)
Mar 20 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
Windows下的PHP安装pear教程
Oct 24 PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 PHP
php实现统计网站在线人数的方法
May 12 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
PHP7之Mongodb API使用详解
Dec 26 PHP
php强制下载文件函数
Aug 24 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP抽象类与接口的区别详解
Mar 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
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
ie下$.getJSON出现问题的解决方法
2014/02/12 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
javascript基本语法
2016/05/31 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
python简单的函数定义和用法实例
2015/05/07 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
品管员岗位职责
2013/11/10 职场文书
安全生产责任书范本
2014/04/15 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android