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
从网上搜到的phpwind 0day的代码
Dec 07 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
Jun 03 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
php商品对比功能代码分享
Sep 24 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
PHP中实现中文字串截取无乱码的解决方法
May 29 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 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
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
js导出excel文件的简洁方法(推荐)
2016/11/02 Javascript
jQuery中ajax错误调试分析
2016/12/01 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
20道JS原理题助你面试一臂之力(必看)
2019/07/22 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
Python实现二维有序数组查找的方法
2016/04/27 Python
Python实现Event回调机制的方法
2019/02/13 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
安全生产检讨书
2014/01/21 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
岗位竞聘书范文
2014/03/31 职场文书
开门红主持词
2014/04/02 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
领导班子四风对照检查材料范文
2014/09/27 职场文书
Python中else的三种使用场景
2021/06/16 Python
JavaScript分页组件使用方法详解
2021/07/26 Javascript
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis