Httpステータスに関する例外をスローする


 悩み事

ステータスコード200以外を返却して、
アプリケーションを終了させたい、または何らかの方法でステータスコードを返却したい

 解決方法

App::abort()メソッドが利用出来ます。

ステータスコード404Not Foundを返却したい場合は、

App::abort(404);

これはNotFoundException、具体的にはSymfony\Component\HttpKernel\Exception\NotFoundHttpExceptionがスローされ、
アプリケーションが強制的に終了される様になります。
スローされるメッセージを任意のメッセージに指定する事が可能です。

\App::abort(404, 'User not found');

HTTPの例外には通常、クライアント·エラーの400およびサーバのエラーの500の範囲のステータスコードがスローされます。
詳しくは、 HTTPステータスコードなどを参考にしてください。

いくつかサンプルを紹介しましょう。

// Unauthorized / 未認証
\App::abort(401, 'Not authenticated');

// Forbidden / 権限無し
\App::abort(403, 'Access denied');

// Internal Server Error / サーバーエラー
\App::abort(500, 'Something bad happened');

// Not implemented / 未実装
\App::abort(501, 'Feature not implemented');

404エラー以外では、それぞれヘッダーに様々な値を含める事ができます。

\App::abort(401, 'Not authenticated', ['WWW-Authenticate' => 'Basic']);

404エラー以外の場合もNotFoundException、具体的にはSymfony\Component\HttpKernel\Exception\NotFoundHttpExceptionがスローされます。

 アドバイス

これらの例外スローを踏まえて様々な実装をする事ができます。

こちらも参考にしてみてください 404エラーを登録する.


Author:Chuck Heintzelman

Editor and Translator:Yuuki Takezawa