データベースへの接続に失敗すると、Yiiエラーメッセージが表示されません。 Yiiフレームワークでデータベース接続が失敗した場合、特定のページにリダイレクトするにはどうすればよいですか?おかげさまで Yiiでデータベース接続が失敗した場合、特定のページにリダイレクトするにはどうすればよいですか?
6
A
答えて
6
あなたはmain.php
'components'=>array('errorHandler'=>array('errorAction'=>'site/error',),),
すると、お使いのコントローラ(またはすべてのコントローラの抽象基本クラス)の中にあなたが定義必要/ configにエラーハンドラを有効にする必要がありすべて CDbConnectionエラーをキャッチするために、リダイレクトを達成するアクション。
public function actionError() {
if($error=Yii::app()->errorHandler->error)
if (CDbException == $error->type) {
$this->redirect(array("site/error_message")); }
// call the parent error handler, but something doesn't feel right about this:
else
parent::actionError(); }
代わりにあなたは自分のカスタムビューをレンダリングすることができます。
public function actionError() {
if($error=Yii::app()->errorHandler->error)
if (CDbException == $error->type) {
$this->render('error', $error); } }
は詳細についてYii docsを参照してください。
1
あなたが何かを行うことができます。
try {
$connection=new CDbConnection($dsn,$username,$password);
} catch(Exception $e) {
$this->redirect(array('controller/action'));
}
をあなたもリダイレクトして、追加情報を渡すことができ、hereを参照してください。
関連する問題
- 1. エラーロギングが失敗した場合はどうすればよいのですか?
- 2. QuickFix/Jの接続に失敗した場合の自動再接続を避けるにはどうすればよいですか?
- 3. タスクが失敗した場合にAntコマンドを実行するにはどうすればよいですか?
- 4. レコードが存在しない場合、404ページにリダイレクトするにはどうすればよいですか?
- 5. codeigniterで検証が失敗した場合、特定のコントローラ機能にリダイレクト
- 6. データの検証に外部サービスが失敗した場合はどうすればよいですか?
- 7. ユーザーが特定のページからログインした場合のみ、ログイン後にリダイレクトするにはどうすればよいですか?
- 8. Javaでデータベース接続が重複しないようにするにはどうすればよいですか?
- 9. 成功した場合にユーザー指定の型を返し、失敗した場合にStringを返すにはどうすればよいですか?
- 10. 特定のパスにリダイレクトするにはどうすればよいですか?
- 11. データベースをAPI.AIに接続するにはどうすればよいですか?
- 12. ネットワークが不安定なときにDB接続が失敗しないようにするにはどうすればよいですか?
- 13. データベースにデータを投稿した後、別のページにリダイレクトするにはどうすればよいですか?
- 14. IDの保存に失敗した場合、作成後にサブネットを特定するにはどうすればよいですか?
- 15. どのように私のWindowsデスクトップのC#アプリケーションを再接続する場合は、接続が失われた場合にサーバーに再接続
- 16. Flask-SQLAlchemyで失敗した場合、別のDBに動的に接続する
- 17. 似たようなルートで特定のコントローラ/アクションにリダイレクトするにはどうすればよいですか?
- 18. データベース接続を解決するにはどうすればよいですか?
- 19. 先行する関数が失敗した場合、jQuery関数が実行されないようにするにはどうすればよいですか?
- 20. ログアウトアクションをPlayの特定のページにリダイレクトするにはどうすればよいですか?
- 21. cx_Oracle接続メソッドで失敗した場合にユーザーにパスワードを再試行するように促す
- 22. レールで特定のフィールドからの検証に失敗した場合はどうすればよいですか?
- 23. データベース接続が失敗したときにエラーを表示するにはどうすればよいですか?
- 24. socket.ioが接続されている場合、Socket.ioが接続されている場合、Alamofireの要求は常に「要求のタイムアウト」で失敗します
- 25. 特定のアベイラビリティゾーンに接続して情報を取得するにはどうすればよいですか?
- 26. コンピュータにデータベースを接続する際に、接続文字列はどうすればよいですか?
- 27. リダイレクトが多すぎるため、JavaでHTTP接続が失敗しますか?
- 28. Resolveが失敗した場合にリダイレクトするAngular 2
- 29. アサートに失敗した後、ユニットテストを続行するにはどうすればよいですか?
- 30. データベースがロックされているため、Android onUpgrade()が失敗します。どうすればよいですか?
美しいアプローチ –
なぜ単純化しないのですか?if($ error = Yii :: app() - > errorHandler-> error && CDbException == $ error-> type){...} ??? – Fydo
@Fydo:同じように動作するはずです。しかし、私はpythonのPHPを好む;)(明示的、可読性、重要なインデントなど) – hobs