No deseo ver el mensaje de error Yii cuando falla la conexión de la base de datos. ¿Cómo puedo redireccionar a una página específica cuando la conexión de la base de datos falla con Yii framework? Gracias.¿Cómo puedo redireccionar a una página específica cuando la conexión de la base de datos falla en Yii?
6
A
Respuesta
6
Para la captura de todos los errores CDbConnection necesita habilitar un controlador de errores en config/main.php
'components'=>array('errorHandler'=>array('errorAction'=>'site/error',),),
Entonces, dentro de su controlador (o una clase base abstracta para todos los controladores) que necesita definir una acción para lograr la redirección.
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(); }
Alternativamente, usted puede simplemente hacer que sus puntos de vista personalizados:
public function actionError() {
if($error=Yii::app()->errorHandler->error)
if (CDbException == $error->type) {
$this->render('error', $error); } }
Ver Yii docs para más detalles.
1
se puede hacer algo como:
try {
$connection=new CDbConnection($dsn,$username,$password);
} catch(Exception $e) {
$this->redirect(array('controller/action'));
}
también puede pasar información adicional con la redirección, consulte here.
Cuestiones relacionadas
- 1. ¿Cómo puedo asegurar mi conexión a la base de datos?
- 2. Yii restringe la conexión de la base de datos a solo lectura
- 3. ¿Cómo puedo redireccionar una página php a otra página php?
- 4. configurando la conexión de la base de datos en el marco Yii
- 5. ¿Cómo puedo redireccionar a una página cuando caduque la sesión del usuario?
- 6. ¿Cómo puedo redireccionar a la página actual usando JavaScript?
- 7. ¿Cuál es una forma de manejar la falla de conexión de la base de datos en Django 1.2?
- 8. ¿Cómo la cadena de conexión protegida por la aplicación Yii?
- 9. Retraso en la conexión a la base de datos C#
- 10. Cómo obtener la conexión Cadena de una base de datos
- 11. ¿Cómo puedo redireccionar 404 páginas a la página de inicio en la comunidad de Magento?
- 12. JUnit prueba una falla en la base de datos?
- 13. ¿Cómo puedo obtener la intercalación de una tabla específica en una base de datos?
- 14. ¿Cómo puedo redireccionar una página con javascript en Greasemonkey?
- 15. Conexión a la base de datos MySQL en el servidor
- 16. Redirigir a la página de inicio de sesión en lugar de la página de índice en Yii
- 17. ¿Por qué falla esta conexión de la base de datos cuando "Nombre de la aplicación = aplicación" está en la cadena de conexión?
- 18. ¿Cómo puedo redireccionar a una URL?
- 19. ¿Cómo puedo redireccionar a la acción anterior en ASP.NET MVC?
- 20. Conexión a la base de datos de Python Cerrar
- 21. ¿Cómo puedo actualizar una página cuando se actualiza una base de datos?
- 22. PostgreSQL: Crear esquema en la base de datos específica
- 23. Rieles ¿cómo puedo exportar datos con send_data y luego redireccionar a una página nueva?
- 24. Variable global - conexión a la base de datos?
- 25. Android - Conexión a la base de datos MySQL
- 26. En Android, compruebe si la base de datos sqlite existe falla de vez en cuando
- 27. conexión tiene una base de datos remota
- 28. ¿Redirige a un usuario a una vista específica cuando falla la autorización?
- 29. Accediendo a la cadena de conexión de la base de datos usando app.config en C# winform
- 30. La accesibilidad a veces falla, incluso cuando tenemos una conexión a Internet
Hermoso enfoque –
¿por qué no simplificar a: if ($ error = Yii :: app() -> errorHandler-> error && CDbException == $ error-> type) {...} ??? – Fydo
@Fydo: sí, eso debería funcionar igual. Pero prefiero PHP pythonic;) (explícito, legible, indentación significativa, etc.) – hobs