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 相关文章推荐
第十三节--对象串行化
Nov 16 PHP
FleaPHP的安全设置方法
Sep 15 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
php MessagePack介绍
Oct 06 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
PHP命名空间和自动加载类
Apr 03 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
Oct 15 PHP
PHP实现本地图片转base64格式并上传
May 29 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
我的论坛源代码(五)
2006/10/09 PHP
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
怎么用javascript进行拖拽
2006/07/20 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
微信小程序模板和模块化用法实例分析
2017/11/28 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
基于python的Paxos算法实现
2019/07/03 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
工商管理专业职业生涯规划
2014/01/01 职场文书
应届大学生简历中的自我评价
2014/01/15 职场文书
安全生产月活动总结
2014/05/04 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
起诉状范本
2015/05/20 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
千手观音观后感
2015/06/03 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
python process模块的使用简介
2021/05/14 Python
Django模型层实现多表关系创建和多表操作
2021/07/21 Python