laravel接管Dingo-api和默认的错误处理方式
接管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]; } returnresponse()->json(['message'=>$msg,'status_code'=>400],200); }); \API::error(function(\Dingo\Api\Exception\ValidationHttpException$exception){ $errors=$exception->getErrors(); returnresponse()->json(['message'=>$errors->first(),'status_code'=>400],200); });
接管laravel的错误
在Exceptions的Handler.php的render中写入以下代码
publicfunctionrender($request,Exception$exception) { if($exceptioninstanceof\Illuminate\Validation\ValidationException){ $data=$exception->validator->getMessageBag(); $msg=collect($data)->first(); if(is_array($msg)){ $msg=$msg[0]; } returnresponse()->json(['message'=>$msg],200); } if(in_array('api',$exception->guards())){ if($exceptioninstanceofAuthenticationException){ returnresponse()->json(['message'=>'token错误'],200); } if($exceptioninstanceofModelNotFoundException){ returnresponse()->json(['message'=>'该模型未找到'],200); } } returnparent::render($request,$exception); }
以上这篇laravel接管Dingo-api和默认的错误处理方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。