gpt4 book ai didi

php - 添加自定义错误页面后,Laravel 不显示调试消息

转载 作者:搜寻专家 更新时间:2023-10-31 21:08:11 25 4
gpt4 key购买 nike

我希望我的 Laravel (4.2) 站点在发生错误时返回一些自定义错误消息(而不是 哎呀,看起来出了点问题。),所以我添加了以下内容:

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

为了测试我临时更改的页面:app/config/local/app.php中的'debug' => false

我的自定义错误页面显示正确(发生错误时)。但是,即使我将本地开发配置恢复为 '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 再次显示错误堆栈跟踪?

最佳答案

问题是,一旦你从 App::error 处理程序返回了一些东西,Laravel 就会将它用作响应并停止“冒泡”。

最简单的方法就是检查 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);
}
});

关于php - 添加自定义错误页面后,Laravel 不显示调试消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com