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 相关文章推荐
php5新改动之短标记启用方法
Sep 11 PHP
PHP Socket 编程
Apr 09 PHP
php 删除一个数组中的某个值.兼容多维数组!
Feb 18 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
thinkphp实现面包屑导航(当前位置)例子分享
May 10 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP身份证校验码计算方法
Aug 10 PHP
PHP Laravel 上传图片、文件等类封装
Aug 16 PHP
基于Laravel 5.2 regex验证的正确写法
Sep 29 PHP
PHP实现计算器小功能
Aug 28 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也可以?成Shell Script
2006/10/09 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
Yii分页用法实例详解
2014/12/04 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
JavaScript 常见安全漏洞和自动化检测技术
2015/08/21 Javascript
ajax异步请求详解
2017/01/06 Javascript
js仿网易表单及时验证功能
2017/03/07 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
python self,cls,decorator的理解
2009/07/13 Python
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
python实现调用其他python脚本的方法
2014/10/05 Python
使用Python的Tornado框架实现一个一对一聊天的程序
2015/04/25 Python
利用python代码写的12306订票代码
2015/12/20 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
基于python调用jenkins-cli实现快速发布
2020/08/14 Python
浅谈anaconda python 版本对应关系
2020/10/07 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
网络程序员自荐信
2014/01/25 职场文书
旅游文化节策划方案
2014/06/06 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
初中语文教师研修日志
2015/11/13 职场文书
《观察物体》教学反思
2016/02/17 职场文书