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知识收集
Aug 20 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
PHP中shuffle数组值随便排序函数用法
Nov 21 PHP
php实现的验证码文件类实例
Jun 18 PHP
33道php常见面试题及答案
Jul 06 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
php 中的closure用法详解
Jun 12 PHP
PHP处理bmp格式图片的方法分析
Jul 04 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php处理多图上传压缩代码功能
Jun 13 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/09/07 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
php的dl函数用法实例
2014/11/06 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
FLASH 广告之外的链接
2008/12/16 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
JavaScript之json_动力节点Java学院整理
2017/06/29 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
python实现简单socket通信的方法
2016/04/19 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python多进程读图提取特征存npy
2019/05/21 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
Python项目跨域问题解决方案
2020/06/22 Python
python实现三壶谜题的示例详解
2020/11/02 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
.net软件工程师面试题
2015/03/31 面试题
介绍一下Mysql的存储引擎
2015/02/12 面试题
医药代表个人的求职信分享
2013/12/08 职场文书
远程教育心得体会
2014/01/03 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android