laravel接管Dingo-api和默认的错误处理方式
今天,长沙网络推广带来一篇关于Laravel如何接管Dingo-api以及默认错误处理方式的分享,希望对你们有所帮助,快跟随我的步伐一起来看看吧。
一、接管Dingo-api的错误处理
在AppServiceProvider.php文件的register()方法中,我们需要添加特定的代码来接管Dingo-api的错误。具体如下:
```php
\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'=>], 200);
});
\API::error(function (\Dingo\Api\Exception\ValidationHttpException $exception){
$errors = $exception->getErrors();
return response()->json(['message'=>$errors->first(),'status_code'=>], 200);
});
```
这样,当发生验证异常时,我们可以自定义返回错误信息的方式。
二、接管Laravel的错误处理
对于laravel的错误,我们可以在Exceptions的Handler.php文件的render方法中加以处理。具体如下:
```php
public function render($request, Exception $exception) {
if($exception instanceof \Illuminate\Validation\ValidationException){
$data = $exception->validator->getMessageBag();
$msg = collect($data)->first();
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); // 返回默认的错误处理方式。
}
```
这样,当发生特定的异常时,我们可以自定义返回的错误信息,提供更友好的用户体验。无论是验证异常还是模型未找到等异常,都可以进行自定义处理。以上就是长沙网络推广分享给大家的全部内容了,希望大家能够喜欢并多多支持狼蚁SEO。
以上内容呈现完毕,如有更多疑问或需求,欢迎继续交流。
编程语言
- laravel接管Dingo-api和默认的错误处理方式
- javascript动态添加checkbox复选框的方法
- js实现select跳转菜单新窗口效果代码分享(超简单
- PHP 中 Orientation 属性判断上传图片是否需要旋转
- HTTP请求返回415错误码定位解决方法
- vue里input根据value改变背景色的实例
- 浅谈Angularjs link和compile的使用区别
- 教你如何开启shopnc b2b2c 伪静态
- php的4种常见运行方式
- sqlserver 手工实现差异备份的步骤
- PHP实现的抓取小说网站内容功能示例
- PHP实现单链表翻转操作示例
- 详解webpack的proxyTable无效的解决方案
- 用js读写cookie的简单方法(推荐)
- 微信小程序 页面传值详解
- axios使用拦截器统一处理所有的http请求的方法