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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。