Laravel 添加自定义错误页面后不显示调试消息
Laravel not displaying debug messages after adding custom error pages
我希望我的 Laravel (4.2) 站点在发生错误时 return 一些自定义错误消息(而不是 Whoops, looks like something went wrong.
),因此我添加了以下内容:
App::error(function(Exception $exception, $code)
{
Log::error($exception);
return Response::view('errors.500', [], 500);
});
use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
return Response::view('errors.404', [], 404);
});
到app/start/global.php
为了测试我临时更改的页面:'debug' => false
in app/config/local/app.php
我的自定义错误页面显示正确(发生错误时)。但是,即使我将本地开发配置恢复为 'debug' => true
.
,它们仍在显示(而不是带有堆栈跟踪和错误消息的错误页面)
我试图将以下内容粘贴到 app/start/local.php
,希望当 laravel 在本地环境中时它会覆盖全局错误处理。但这并不能解决问题。
App::error(function(Exception $exception, $code)
{
Log::error($exception);
});
use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
Log::error($exception);
});
如何让 laravel 再次显示错误堆栈跟踪?
问题是,如果您 return 来自 App::error
处理程序的内容,Laravel 将使用它作为响应并停止 "bubbling up"。
最简单的方法就是检查 app.debug
配置:
App::error(function(Exception $exception, $code)
{
Log::error($exception);
if(Config::get('app.debug') !== true){
return Response::view('errors.500', [], 500);
}
});
use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
if(Config::get('app.debug') !== true){
return Response::view('errors.404', [], 404);
}
});
我希望我的 Laravel (4.2) 站点在发生错误时 return 一些自定义错误消息(而不是 Whoops, looks like something went wrong.
),因此我添加了以下内容:
App::error(function(Exception $exception, $code)
{
Log::error($exception);
return Response::view('errors.500', [], 500);
});
use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
return Response::view('errors.404', [], 404);
});
到app/start/global.php
为了测试我临时更改的页面:'debug' => false
in app/config/local/app.php
我的自定义错误页面显示正确(发生错误时)。但是,即使我将本地开发配置恢复为 'debug' => true
.
我试图将以下内容粘贴到 app/start/local.php
,希望当 laravel 在本地环境中时它会覆盖全局错误处理。但这并不能解决问题。
App::error(function(Exception $exception, $code)
{
Log::error($exception);
});
use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
Log::error($exception);
});
如何让 laravel 再次显示错误堆栈跟踪?
问题是,如果您 return 来自 App::error
处理程序的内容,Laravel 将使用它作为响应并停止 "bubbling up"。
最简单的方法就是检查 app.debug
配置:
App::error(function(Exception $exception, $code)
{
Log::error($exception);
if(Config::get('app.debug') !== true){
return Response::view('errors.500', [], 500);
}
});
use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
if(Config::get('app.debug') !== true){
return Response::view('errors.404', [], 404);
}
});