过滤后应用程序中的app :: abort()之后的异常处理程序出错

时间:2014-04-30 13:27:37

标签: php laravel-4

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

  

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

过滤后的app ::只需调用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论坛上的帖子指向数据库错误。我非常怀疑这一点,因为所有错误都会导致同样的事情,并且当按原样调用时,它可以正常工作。

尝试使用作曲家进行更新并没有真正做任何事情并且使用工匠和作曲家倾销自动加载也没有。

有没有人碰巧知道这个错误发生的原因以及可能的解决方法?

1 个答案:

答案 0 :(得分:-2)

在SO聊天中询问后,更改===到==在following comment之后解决了问题:

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

    elseif($code == 401)
    {
        return Error::unauthorized();
    }

    Log::error($exception);
})