Volver a la página principal
martes 3 diciembre 2024
18

Cómo crear páginas de error personalizadas en Laravel

En Laravel, personalizar las páginas de error permite mejorar la experiencia del usuario y mantener la coherencia de diseño en tu aplicación. Laravel facilita la creación de estas páginas mediante plantillas Blade.

Pasos para crear páginas de error personalizadas

1. Ubicación de las plantillas de error:

Laravel utiliza la carpeta resources/views/errors para las páginas de error. Si esta carpeta no existe, créala.

2. Crea una plantilla para el código de error:

Cada página de error se identifica por su código HTTP (por ejemplo, 404, 500).

Para personalizar una página de error, crea un archivo Blade con el nombre del código de error. Ejemplo para un error 404:

resources/views/errors/404.blade.php

3. Diseña la página de error:

Usa HTML, CSS y Blade para crear una página personalizada. Por ejemplo:

<!DOCTYPE html>
   <html lang="en">
   <head>
       <meta charset="UTF-8">
       <meta name="viewport" content="width=device-width, initial-scale=1.0">
       <title>Error 404 - Página no encontrada</title>
       <link rel="stylesheet" href="{{ asset('css/app.css') }}">
   </head>
   <body>
       <div class="error-page">
           <h1>Error 404</h1>
           <p>Lo sentimos, la página que estás buscando no existe.</p>
           <a href="{{ url('/') }}">Volver al inicio</a>
       </div>
   </body>
   </html>

4. Crear una plantilla genérica opcional:

Si deseas manejar varios errores con una sola página, crea un archivo resources/views/errors/404.blade.php y usa el código HTTP dinámicamente:

<h1>Error @yield('code', 'Error')</h1>
   <p>@yield('message', 'Ocurrió un problema.')</p>

5. Configura el archivo Handler.php (opcional):

Si necesitas personalizar aún más la lógica de manejo de errores, edita el método render en app/Exceptions/Handler.php.

Ejemplo:

public function render($request, Throwable $exception)
   {
       if ($exception instanceof NotFoundHttpException) {
           return response()->view('errors.404', [], 404);
       }

       return parent::render($request, $exception);
   }

Algunos ejemplos

  • Error 403 (Acceso denegado):

Crea un archivo 403.blade.php con un mensaje amigable indicando que el acceso está restringido.

  • Error 500 (Error interno del servidor):

Diseña un archivo 500.blade.php que sugiera al usuario intentar nuevamente más tarde.

Referencia oficial

Consulta la documentación oficial de Laravel sobre manejo de errores en laravel.com/docs/errors.

Etiquetas:
php laravel
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer