laravel接管Dingo-api和默认的错误处理方式


Posted in PHP onOctober 25, 2019

接管Dingo-api的错误

laravel接管Dingo-api和默认的错误处理方式

如上图所示,AppServiceProvider.php中的register()方法中添加如下代码

\API::error(function (\Illuminate\Validation\ValidationException $exception){
  $data =$exception->validator->getMessageBag();
   $msg = collect($data)->first();
   if(is_array($msg)){
     $msg = $msg[0];
   }
   return response()->json(['message'=>$msg,'status_code'=>400], 200);
 });
 \API::error(function (\Dingo\Api\Exception\ValidationHttpException $exception){
   $errors = $exception->getErrors();
   return response()->json(['message'=>$errors->first(),'status_code'=>400], 200);
 });

接管laravel的错误

laravel接管Dingo-api和默认的错误处理方式

在Exceptions的Handler.php的render中写入以下代码

public function render($request, Exception $exception)
  {
    if($exception instanceof \Illuminate\Validation\ValidationException){
      $data = $exception->validator->getMessageBag();
      $msg = collect($data)->first();
      if(is_array($msg)){
        $msg = $msg[0];
      }
      return response()->json(['message'=>$msg],200);
    }

    if (in_array('api',$exception->guards())){
      if($exception instanceof AuthenticationException){
        return response()->json(['message'=>'token错误'],200);
      }
      if($exception instanceof ModelNotFoundException){
        return response()->json(['message'=>'该模型未找到'],200);
      }

    }

    return parent::render($request, $exception);
  }

以上这篇laravel接管Dingo-api和默认的错误处理方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
基于mysql的bbs设计(五)
Oct 09 PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
Php图像处理类代码分享
Jan 19 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
php强制运行广告的方法
Dec 01 PHP
8个PHP程序员常用的功能汇总
Dec 18 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
PHP页面跳转操作实例分析(header方法)
Sep 28 PHP
PHP实现根据数组的值进行分组的方法
Apr 20 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
Oct 25 #PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 #PHP
Laravel validate error处理,ajax,json示例
Oct 25 #PHP
laravel 错误处理,接口错误返回json代码
Oct 25 #PHP
laravel 实现用户登录注销并限制功能
Oct 24 #PHP
Laravel 5.5 实现禁用用户注册示例
Oct 24 #PHP
laravel5.5安装jwt-auth 生成token令牌的示例
Oct 24 #PHP
You might like
浅析PHP绘图技术
2013/07/03 PHP
php中in_array函数用法探究
2014/11/25 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
关于Jqzoom的使用心得 jquery放大镜效果插件
2010/04/12 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
JS实现求5的阶乘示例
2019/01/21 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
Vue实现多页签组件
2021/01/14 Vue.js
使用Python3编写抓取网页和只抓网页图片的脚本
2015/08/20 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python系列 文件操作的代码
2019/10/06 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
Python无损压缩图片的示例代码
2020/08/06 Python
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
环保倡议书400字
2014/05/15 职场文书
招标承诺书
2014/08/30 职场文书
2014国庆节演讲稿:祖国在我心中(400字)
2014/09/25 职场文书
资产运营委托书范本
2014/10/16 职场文书
Python图片检索之以图搜图
2021/05/31 Python
Python常遇到的错误和异常
2021/11/02 Python