データベースへの接続に失敗すると、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. タスクが失敗した場合にAntコマンドを実行するにはどうすればよいですか?
- 3. ユーザーが特定のページからログインした場合のみ、ログイン後にリダイレクトするにはどうすればよいですか?
- 4. ネットワークが不安定なときにDB接続が失敗しないようにするにはどうすればよいですか?
- 5. 先行する関数が失敗した場合、jQuery関数が実行されないようにするにはどうすればよいですか?
- 6. クライアントがNettyサーバーへの接続に失敗した場合はどうなりますか?
- 7. 特定のアベイラビリティゾーンに接続して情報を取得するにはどうすればよいですか?
- 8. ログアウトアクションをPlayの特定のページにリダイレクトするにはどうすればよいですか?
- 9. アサートに失敗した後、ユニットテストを続行するにはどうすればよいですか?
- 10. データベースがロックされているため、Android onUpgrade()が失敗します。どうすればよいですか?
- 11. SQL接続が失敗した場合のトラップエラーの詳細
- 12. コンピュータにデータベースを接続する際に、接続文字列はどうすればよいですか?
- 13. 接続中に接続が失われた場合、クエリは正しいですか?
- 14. オープンに失敗した場合はどうなりますか?
- 15. ビルドステップが失敗した場合でもJenkinsビルドを続行するにはどうすればよいですか?
- 16. CasperJSでアサーションが失敗した場合のテストケースを続行するには?
- 17. トリガーが失敗した場合はどうなりますか?
- 18. デバイスがルータに接続されている場合のインターネット接続の可用性を確認するにはどうすればよいですか?
- 19. クライアントアプリケーション間の接続を許可したい場合はどうすればよいですか?
- 20. ユーザーがサーバーの検証に失敗した場合、ASP.NET MVCのフォームに入力した値を保持するにはどうすればよいですか?
- 21. on CakePHP:最初の試行でDBへの接続に失敗した場合に代替データベース設定を使用して接続する方法
- 22. REQUEST_URIが特定のディレクトリの場合、RewriteRuleをスキップするにはどうすればよいですか?
- 23. テストが失敗した場合、Android jenkinsビルドに失敗する
- 24. ASP.NET - 役割認証が失敗した場合にエラーページにリダイレクト
- 25. 接続プーリングで必要な接続数を決定するにはどうすればよいですか。
- 26. delayed_jobに特定のdb接続を使用させるにはどうすればよいですか?
- 27. キュウリ失敗シナリオを標準エラー出力にリダイレクトするにはどうすればよいですか?
- 28. MVCでWebサービスを使用してデータベースに接続するにはどうすればよいですか?
- 29. MVC3でページをリダイレクトするにはどうすればよいですか?
- 30. データベースへのロギングが失敗したときにnlogが例外をスローするようにするにはどうすればいいですか?
美しいアプローチ –
なぜ単純化しないのですか?if($ error = Yii :: app() - > errorHandler-> error && CDbException == $ error-> type){...} ??? – Fydo
@Fydo:同じように動作するはずです。しかし、私はpythonのPHPを好む;)(明示的、可読性、重要なインデントなど) – hobs