当前位置: 首页 > 后端技术 > PHP

如何在laravel中为Dingoapi使用CustomExceptionHandler

时间:2023-03-29 20:55:29 PHP

最近在使用Dingoapi处理接口时,发现laravel自带的appExceptionsHandler无法捕获异常。后来查资料发现是Dingoapi接管了api请求的异常处理。导致无法自定义错误返回,很头疼。最后,我在野狗的问题上找到了解决方案。方法创建一个自定义异常处理继承自Dingo\Api\Exception\Handler,重新编写方法app/Exceptions/ApiHandler.phpjson(['message'=>'Unauthorized','status_code'=>401],401);}returnparent::handle($exception);}}创建一个服务容器app/Providers/DingoServiceProvider.phpapp->singleton('api.exception',function($app){returnnewExceptionHandler($app['Illuminate\Contracts\Debug\ExceptionHandler'],$this->config('errorFormat'),$this->config('debug'));});}}将服务容器添加到config/app.php...'providers'=>[...App\Providers\DingoServiceProvider::class,...];结论参考issue链接:https://github.com/dingo/api/...@shanginn提供的方法会存在,返回接口500,没有返回数据