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中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
php缩小png图片不损失透明色的解决方法
Dec 25 PHP
PHP防止注入攻击实例分析
Nov 03 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
Nov 17 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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 Google的translate API代码
2008/12/10 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
php strnatcmp()函数的用法总结
2013/11/27 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
2014/11/01 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
新手入门常用代码集锦
2007/01/11 Javascript
javascript json2 使用方法
2010/03/16 Javascript
事件模型在各浏览器中存在差异
2010/10/20 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
Javascript判断文件是否存在(客户端/服务器端)
2014/09/16 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
python 列表推导式使用详解
2019/08/29 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
Python与C/C++的相互调用案例
2021/03/04 Python
大学生职业生涯规划书模板
2014/01/03 职场文书
大学生村官心得体会范文
2014/01/04 职场文书
个人授权委托书样本
2014/09/13 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
教师节领导致辞
2015/07/29 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书