Como personalizar pagina de error 404

Como personalizar pagina de error 404

Si requieres personalizar la página 404 en tu sitio web te recomiendo seguir los siguientes pasos.




Paso 1. Crear un nuevo layout.

Dentro de tu proyecto de Yii encontrarás una carpeta que se llama /view/ que es donde se guardan todos los layouts  y siempre encontraras la carpeta /site/ dicha carpeta /view/layouts/, esta carpeta contiene las plantillas que se utilizan para todo el sitio. 

Vas a ver un archivo que se llama main.php esa es la layout principal del sitio, el que contiene todo el diseño, por lo tanto realiza una copia de éste archivo y sobre escribirlo con el nombre  y colocalo en la ruta siguiente /views/layouts/error.php, éste archivo será la plantilla que usarás para mostrar la página de errores personalizada.

Yo te recomendaría usar otra plantilla por que normalmente en el caso de sistemas que tiene un back y un front no querrás mostrar el mismo contenido, así que por default Yii2 te mostrará el menú de tu back office. Por lo tanto este paso es opcional pero yo lo voy a incluir.

Paso 2. Modifica el SiteController

El siteController es la página por donde pasan todas las peticiones del sitio, así que por eso tendremos que modificar el siguiente metodo:

Este método se ejecuta antes de devolver cualquier respuesta de una petición por ese motivo tenemos que usar este método.


    public function beforeAction( $action ) {
      $exception = Yii::$app->getErrorHandler()->exception; // Manejo de excepciones
      if(parent::beforeAction($action)) { // Esto es requerido         
            if($action->id == 'error') { // Si hay un error en la peticion
                if($exception !== NULL) {
                    $this->layout = 'error'; // Cambia la plantilla 
                }
              return true;
            }else{
               return true;
            }            
        }
    }

Para este caso en especifico cambiaremos la plantilla por default con esta linea "$this->layout = 'error';" pero tu puedes utilizar la plantilla que desees.

Paso 3. Crea tu página personalizada

Crea una página en blanco en la siguiente ruta /views/site/error.php se debe de llamar así tal cual ya que es la que Yii toma por default, y puedes poner este código.



    $exception = Yii::$app->getErrorHandler()->exception;
    $errorCode = $exception->statusCode;
    echo "<h1> Error:" . $errorCode . "</h1>";    
    switch ($errorCode){
        case "404":
            echo "<p>Ups lo sentimos creo que la pagina que busca ha cambiado o ya no existe</p>";            
        case "403":
            echo "<p>Lo sentimos usted no tiene permitido entrar a esta página</p>";
    }    




Esta linea obtiene el codigo de errores 
"$exception = Yii::$app->getErrorHandler()->exception;
la cual es manejada para mostrar el numero y alguna descripción personalizada de los errores, en este caso yo estoy solo validando los errores 404 y 403 pero recuerda que hay otros errores.

Agregar un diseño personalizado dentro de tu plantilla y logra el diseño deseado. 


Actualizado:  10-Mayo-2022


















Comentarios

Aprende Yii2


Lo más Visto

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Guía rápida para uso de widget kartik para select para formulario

Cómo incluir una vista dentro de un modal

Google Plus desaparecerá el 4 de Abril de 2019

Crear fomulario HTML con checkbox sin Active Record

hostinger

ventana bienvenida