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 相关文章推荐
PHP中的日期处理方法集锦
Jan 02 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 PHP
PHP Class&Object -- 解析PHP实现二叉树
Jun 25 PHP
php读取txt文件并将数据插入到数据库
Feb 23 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
PHP递归的三种常用方式
Feb 28 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 PHP
swoole锁的机制代码实例讲解
Mar 04 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
简单的过滤字符串中的HTML标记
2006/12/25 PHP
php 无限级数据JSON格式及JS解析
2010/07/17 PHP
url decode problem 解决方法
2011/12/26 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
微信小程序自定义组件
2017/08/16 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
vue使用drag与drop实现拖拽的示例代码
2017/09/07 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
用vue写一个仿简书的轮播图的示例代码
2018/03/13 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
Win8下python3.5.1安装教程
2020/07/29 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
本科生个人求职自荐信
2013/09/26 职场文书
财务情况说明书范文
2014/05/06 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
升学宴演讲稿
2014/09/01 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
职工培训工作总结
2015/08/10 职场文书