筛选器之后的应用程序中的app::abort()之后的异常处理程序出错


Error in exception handler after app::abort() in application after filter

当我尝试在Laravel 4中使用app::abort($code)时,会出现以下错误:

异常处理程序出错:在中。。。''vendor''laravel''framework''src''Illuminate''Foundation''Application.php:875

过滤器后的应用程序:简单地调用app::abort(401)

App::after(function($request, $response)
{
    app::abort(401);
});

依次转到这里:

App::error(function(Exception $exception, $code)
{
    if($code === 403)
    {
        return Error::forbidden();
    }
    elseif($code === 401)
    {
        return Error::unauthorized();
    }
    Log::error($exception);
});

调用我的错误类

class Error
{
    public static function notFound()
    {
        return static::dispatch('/errors/not-found');
    }
    public static function forbidden()
    {
        return static::dispatch('/errors/forbidden');
    }
    public static function unauthorized()
    {
        return static::dispatch('/errors/unauthorized');
    }
    private static function dispatch($url)
    {
        return Route::dispatch(Request::create($url))->getContent();
    }
}

对于路由,只需调用控制器,该控制器只设置布局上的标题和内容。

这一切都很顺利,直到请求完成。

laravel论坛上的一篇帖子指出了一个数据库错误。我非常怀疑这一点,因为所有错误都会导致相同的事情,并且当按原样调用时,它工作得很好。

尝试使用composer进行更新并没有真正起到任何作用,使用artisan和composer转储自动加载也没有起到任何效果。

有人知道为什么会发生这个错误,以及可能如何修复它吗?

在SO聊天中询问后,将===更改为===在以下评论后解决了问题:

App::error(function(Exception $exception, $code)
{
    if($code == 403)
    {
        return Error::forbidden();
    }
    elseif($code == 401)
    {
        return Error::unauthorized();
    }
    Log::error($exception);
})