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 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
PHP个人网站架设连环讲(二)
Oct 09 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php中的注释、变量、数组、常量、函数应用介绍
Nov 16 PHP
php使用fgetcsv读取csv文件出现乱码的解决方法
Nov 08 PHP
PHP获取Exif缩略图的方法
Jul 13 PHP
CodeIgniter配置之config.php用法实例分析
Jan 19 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
Mar 18 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
php如何实现数据库的备份和恢复
Nov 30 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和MySql来与ODBC数据连接
2006/10/09 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
初识Node.js
2014/09/03 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
移动端使用localResizeIMG4压缩图片
2017/04/22 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
bpython 功能强大的Python shell
2016/02/16 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
python实现飞机大战游戏
2020/10/26 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
数控专业大学生的自我鉴定
2013/11/13 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
个人简历自我评价范文
2014/02/04 职场文书
实验教师岗位职责
2014/02/13 职场文书
安卓程序员求职信
2014/02/28 职场文书
股东授权委托书范文
2014/09/13 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
化验室安全管理制度
2015/08/06 职场文书
合同补充协议书
2016/03/24 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
java基础——多线程
2021/07/03 Java/Android