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 相关文章推荐
批量获取memcache值并按key的顺序返回的实现代码
Jun 14 PHP
php笔记之:php数组相关函数的使用
Apr 26 PHP
php Calender(日历)代码分享
Jan 03 PHP
php计算程序运行时间的简单例子分享
May 10 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
Feb 12 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
Apr 04 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 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 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
php实现的简单日志写入函数
2015/03/31 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
javascript实现保留两位小数的多种方法
2015/12/18 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
ckeditor一键排版功能实现方法分析
2020/02/06 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
ReactRouter的实现方法
2021/01/25 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
Python通过解析网页实现看报程序的方法
2014/08/04 Python
python实现自动解数独小程序
2019/01/21 Python
Python 函数list&read&seek详解
2019/08/28 Python
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
乡镇交通安全实施方案
2014/03/29 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
开国大典观后感
2015/06/04 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers