2011-11-08 4 views
2

コントローラーを "通常"実行すると、(予約)コントローラーが例外をスローします。私はカスタム500エラーページを取得します。twig {%render%} noエラーページsymfony2

私は別のテンプレート内のコントローラをレンダリングする場合は、そのよう:

{% render "BookingBundle:Booking:list" %} 

その後、私は何もちょうど空白の出力を得ることはありません。

コントローラー内でtry catchを実行してエラーページを表示する方法はありますか?

+0

私はそうは思いません。しかし、コントローラで500エラーが発生するのはなぜですか? –

+0

未知の例外または構文エラー。残念ながら、コントローラーが例外をスローしているわけではありませんが、コントローラーが使用しているサービスは例外をスローします。 –

+0

さて、動作中のアプリケーションは、キャッチされない例外や構文エラーを生成してはいけません。そこで、ここで何を達成しようとしているのか分かりません。コントローラーの応答が空白の場合は、ログを見て、問題を見つけて修正してください。しかし、実稼働環境ではその必要はありません。 –

答えて

6

タグをレンダリングを使用するとき、あなたは3番目の引数としていくつかのオプションを指定することができます:デバッグモードとTRUEで

  • IGNORE_ERRORSデフォルトFALSEそう
  • ALT場合に実行する代替コントローラを

デバッグモードは、trueを第2カーネルのコンストラクタargumenの値として渡すことで有効になりますt。あなたはフロントコントローラクラスでそれを見ることができます:

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

あなたも非デバッグモードでは、エラーを無視したくない場合は、あなたが行うことができます:

{% render 'BookingBundle:Booking:list' with {}, {'ignore_errors':false} %} 
+1

"alt"は私が欲しいもののように聞こえる素晴らしい感謝。私は説明のない空白の画面が嫌いです。私は別のコントローラを実行することができ、 "エラーが発生しました"というメッセージを表示するだけで鮮やかになり、同時に何かが間違ってログに記録される可能性があります。サイレントに死ぬことは私の考えではなく、混乱の原因になる可能性があります(私のコードではこのaltコントローラを引き起こすバグはありません:))。再度、感謝します –

関連する問題