我正在尝试使用Laravel的Codeception获取可读的错误消息。我发现如何覆盖App :: error函数给我基于文本或json的响应。但是,我想以某种方式设置错误,以便它在不从测试调用时只显示html错误页面。
我意识到我正在运行的功能测试使用PhpBrowser类,所以可能无法检查......
任何提示都非常赞赏。
以下代码:
App::error(function(Exception $exception, $code, $fromConsole)
{
Log::error($exception);
if($fromConsole) {
return Response::make($exception->getMessage());
}
if ( Request::header('accept') === 'application/json' )
{
return Response::json([
'error' => true,
'message' => $exception->getMessage(),
'code' => $code],
$code
);
}
});
答案 0 :(得分:1)
您可以使用App::environment()
来获取当前环境。
App::error(function(Exception $exception, $code, $fromConsole)
{
Log::error($exception);
if($fromConsole) {
return Response::make($exception->getMessage());
}
if ( App::environment() == 'production' )
{
return Response::json([
'error' => true,
'message' => $exception->getMessage(),
'code' => $code],
$code
);
}
});