当我尝试在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);
})