php – 处理程序没有捕获自动化和令牌不匹配异常. Laravel
发布时间:2020-12-14 19:40:49 所属栏目:大数据 来源:网络整理
导读:我一直试图处理laravel抛出的异常一段时间.我尝试过很多东西,但似乎没有用.以下是我使用的语法: public function render($request,Exception $e){ //404 page when a model is not found if ($e instanceof ModelNotFoundException) { return response()-vi
我一直试图处理laravel抛出的异常一段时间.我尝试过很多东西,但似乎没有用.以下是我使用的语法:
public function render($request,Exception $e) { //404 page when a model is not found if ($e instanceof ModelNotFoundException) { return response()->view('errors.404',[],404); }elseif ($e instanceof AuthorizationException) { return response()->view('errors.403',403); }elseif ($e instanceof TokenMismatchException) { Flash::error('Sorry,your session seems to have expired. Please try again.'); return redirect('/'); }elseif ($e instanceof ErrorException) { return response()->view('errors.500',500); }else { return response()->view('errors.500',500); } // return parent::render($request,$e); } 我包括了以下内容: use Exception; use IlluminateAuthAccessAuthorizationException; use IlluminateDatabaseEloquentModelNotFoundException; use IlluminateFoundationExceptionsHandler as ExceptionHandler; use IlluminateSessionTokenMismatchException; use IlluminateValidationValidationException; use SymfonyComponentHttpKernelExceptionHttpException; 此外,先前添加了以下内容: protected $dontReport = [ AuthorizationException::class,HttpException::class,ModelNotFoundException::class,ValidationException::class,TokenMismatchException::class,]; 谁能帮我这个?我已经坚持了几天.任何帮助,将不胜感激. 解决方法
原因是框架排除了这些例外情况,因此不予报告.请参阅
here以获取参考.
由于定义排除异常的属性受到保护,您应该能够在app / Exceptions / Handler.php文件中覆盖它.您不应该删除所有这些异常,而只删除您真正想要捕获的异常.只需将以下行添加到Handler.php: /** * A list of the internal exception types that should not be reported. * * @var array */ protected $internalDontReport = [ AuthenticationException::class,HttpResponseException::class,]; 您还必须为所有类添加use语句. (请注意,这是Laravel 5.6的排除例外列表 – 如果您使用的是其他版本,则可能必须使用git blame或其他分支来查找适合您版本的正确列表.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |