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详解ASCII码对照表与字符转换
Dec 05 PHP
深入file_get_contents与curl函数的详解
Jun 25 PHP
PHP比你想象的好得多
Nov 27 PHP
php读取文件内容的方法汇总
Jan 24 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
PHP实现的进度条效果详解
May 03 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
php多线程并发实现方法
Sep 30 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP JWT初识及其简单示例
Oct 10 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 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
JAVA/JSP学习系列之四
2006/10/09 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
基于javascript实现图片左右切换效果
2016/01/25 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
JS验证字符串功能
2017/02/22 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python基于json文件实现的gearman任务自动重启代码实例
2019/08/13 Python
Django和Flask框架优缺点对比
2019/10/24 Python
python如何获取apk的packagename和activity
2020/01/10 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
入学申请自荐信范文
2014/02/26 职场文书
安全生产计划书
2014/05/04 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
学习作风建设心得体会
2014/10/22 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
JavaScript组合继承详解
2021/11/07 Javascript