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 に答える