2017-12-06 14 views
1

私はYii2高度なアプリケーションプロジェクトに取り組んでおり、yii2ビルトインエラーハンドラに問題があります。私はこのように私のバックエンド構成でerrorActionを設定しているYii2 - エラーハンドラはデータベース例外をキャッチできません

:ここに私の問題の説明です

'errorHandler' => [ 
    'errorAction' => 'site/error', 
], 

SiteControllerキャッチで、今の方法actionError()すべてのアプリケーション例外は、ユーザーが定義した例外とも致命的なエラー、yii\db\IntegrityExceptionなどのデータベース関連の例外を除く)。私は理由を知らないが、そのような例外が発生すると、actionError()は何もしない!私はtry-catchブロックで手動で例外をキャッチしたくないですし、私は中央のErrorHandlerキャッチが必要ですすべて例外です。

この問題を解決するにはどうすればよいですか?注意を払うために特別にすべてのyii専門家に感謝します。この奇妙な問題を解決するために私を助けてください。

+0

'YII_DEBUG'を無効にしましたか? – Yupik

+0

@Yupikいいえ、それは 'true'値を持っています。 – hamed

+0

変更してください。修正する必要があります。 – Yupik

答えて

0

このGitHubの問題によれば、yiisoft/yii2/issues/10657と@Yupikによるコメントには、YII_DEBUGを変更する必要があります。

YII_DEBUGtrueの場合、デバッグモードではyii\db\IntegrityExceptionというメッセージが表示されます。

YII_DEBUGfalse(生産環境のような)の場合、エラーはactionError()にリダイレクトされ、ユーザーフレンドリーなモードで表示されます。

関連する問題