Puesto que Laravel usa Front Controller para redirigir las peticiones, cuando quieras crear una página no debes agregar un archivo .php a tu directorio público sino crear una ruta. En esta lección te enseñaré cómo definir rutas básicas con el framework Laravel a partir de la versión 10.

Mira el código en GitHub: actual, resultado, comparación.

Si estás comenzando a trabajar con Laravel, es probable que te preguntes cómo se manejan las rutas. Cuando un usuario realiza una petición, esa petición es redirigida al Front Controller, que es el encargado de inicializar Laravel. Una vez que el framework esté listo, va a ejecutar la ruta adecuada dependiendo de la petición del usuario.

Las rutas se definen en distintos archivos ubicados en el directorio routes de nuestra aplicación. Cada uno de estos archivos corresponde a un grupo de rutas que comparten alguna característica común. Por defecto, las rutas de las que vamos a hablar hoy se definen en el archivo web.php.

Al iniciar un nuevo proyecto con Laravel, encontraremos una sola ruta definida en web.php. Esta ruta se corresponde con la página de inicio de nuestra aplicación y por defecto, retorna la vista welcome.

Route::get('/', function () { 
    return view('welcome'); 
});

Sin embargo, en esta ocasión vamos a modificar un poco esta línea de código. En lugar de retornar una vista, vamos a retornar un mensaje. Para hacer esto, simplemente reemplazamos view('welcome') por 'Página de Inicio':

Route::get('/', function () {
    return 'Página de Inicio';
});

Ahora, si accedemos a la URL raíz de nuestra aplicación (/), veremos que nos devuelve el mensaje: ‘Página de Inicio’. Pero ¿qué pasa si cambiamos la URL a /home? En este caso, Laravel nos devuelve un error 404, pues no existe ninguna ruta asociada actualmente a esa URL en nuestra aplicación.

Recuerda que el error 404 se produce cuando el servidor no puede encontrar el recurso solicitado. En este caso, la URL /home.

Definiendo las rutas de nuestro proyecto

Para nuestro proyecto, una pequeña aplicación de notas, necesitamos más que una sola ruta. Así que vamos a seguir añadiendo algunas rutas más a nuestro archivo web.php.

Primero, añadimos una ruta que nos permita listar todas nuestras notas. A esta ruta la vamos a asociar con la URL /notas.

Route::get('/notas', function () {
    return 'Listado de notas';
});

Además, necesitamos una ruta que nos permita crear nuevas notas. Vamos a asignarle la URL /notas/crear.

Route::get('/notas/crear', function () {
    return 'Crear nueva nota';
});

Si nos dirigimos a la URL /notas, veremos el mensaje: ‘Listado de notas’. Por otro lado, si accedemos a la URL /notas/crear, veremos el mensaje: ‘Crear nueva nota’.

Retornar respuestas JSON

Laravel nos permite trabajar con respuestas JSON de manera muy sencilla. Esto es especialmente útil si estamos creando una API. Para retornar una respuesta de tipo JSON, simplemente retornamos un arreglo desde nuestra ruta, Laravel se encargará de la conversión a JSON.

Route::get('/cursos', function () {
    return [
        'Cursos' => [
            'Curso de Laravel 10', 
            'Curso de programación orientada a objetos', 
            'Curso de Git',
         ]
    ];
});

En las próximas lecciones, te enseñaré cómo crear rutas con parámetros dinámicos y cómo separar la lógica de las rutas en controladores, una práctica que nos permitirá mantener nuestro código organizado y limpio a medida que nuestra aplicación crezca.

Únete a nuestra comunidad en Discord y comparte con los usuarios y autores de Styde, 100% gratis.

Únete hoy

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior El Patrón Front Controller en Laravel 10 Lección siguiente Rutas con parámetros dinámicos en Laravel 10