1

我正在尝试使用带有 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
        );
    } 
});
4

1 回答 1

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
        );
    } 
});
于 2014-04-04T04:55:16.060 回答