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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
php中socket的用法详解
Oct 24 PHP
php轻松实现文件上传功能
Mar 03 PHP
php实现用户注册密码的crypt加密
Jun 08 PHP
PHP简单计算两个时间差的方法示例
Jun 20 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
Jan 17 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原创论坛
2006/10/09 PHP
PHP学习之数组的定义和填充
2011/04/17 PHP
php 数组使用详解 推荐
2011/06/02 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
强制设为首页代码
2006/06/19 Javascript
json 入门基础教程 推荐
2009/10/31 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
[01:34]2014DOTA2展望TI 剑指西雅图VG战队专访
2014/06/30 DOTA
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python2.x中文乱码问题解决方法
2015/06/02 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
实例讲解Python3中abs()函数
2019/02/19 Python
pyqt5 QlistView列表显示的实现示例
2020/03/24 Python
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
致长跑运动员广播稿
2014/01/31 职场文书
军训学生自我鉴定
2014/02/12 职场文书
关爱留守儿童倡议书
2014/04/15 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
公务员个人年终总结
2015/02/12 职场文书
司机个人年终总结
2015/03/03 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis