1

ドキュメントから:

すべてのエラー テンプレートは TwigBundle 内にあります。テンプレートをオーバーライドするには、バンドル内に存在するテンプレートをオーバーライドするための標準的な方法に依存するだけです。

と:

デフォルトのエラー テンプレートの完全なリストを確認するには、TwigBundle の Resources/views/Exception ディレクトリを参照してください。

後述のディレクトリを見ると、いくつかのファイルが見つかります。403、404、および 500 エラーのカスタム テンプレートに興味があるので、error.html.twig(親テンプレート) を作成しerror403.html.twig、(カスタム親テンプレートによって上書きされた)から拡張します。error404.html.twigerror500.html.twig'TwigBundle:Exception:error.html.twig'

これは正しいです?別の種類のエラーまたは例外がスローされた場合はどうなりますか?

4

1 に答える 1

8

はい、正しいです。

他のすべての種類の例外はカーネルによってキャッチされ、error500.html.twig ページがレンダリングされます。

それをテストするには、app_dev.php で AppKerner コンストラクターに渡される 2 番目のパラメーターを切り替えることで、デバッグを一時的にオフにすることができます。

$kernel = new AppKernel('dev', false);

その後、次のことができます

  1. 間違ったアドレスを入力して 404 エラー ページをテストする
  2. 500エラーページをテストするために例外をスローします

新しい \Exception() をスローします。// テスト 500 エラー ページ

  1. 投げる

新しい \Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException() をスローします。
または
new \Symfony\Component\HttpKernel\Exception\HttpException(403); をスローします。// 403 エラー ページをテストする

于 2012-07-24T23:16:51.917 に答える