This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

Guía de enrutamiento Laravel – Cómo crear una ruta para llamar a una vista

Updated on julio 11, 2025

9 Min Read

Puntos clave:

  • El enrutamiento de Laravel asigna URLs a acciones o controladores específicos, definiendo cómo responde la aplicación a las peticiones HTTP.
  • Las rutas se definen en archivos como routes/web.php y routes/api.php, y pueden asociarse a varios métodos HTTP (GET, POST, PUT, DELETE, PATCH, OPTIONS).
  • Laravel ofrece funciones avanzadas de enrutamiento, como parámetros de ruta, restricciones de expresión regular, rutas con nombre, agrupación de rutas, middleware y rutas fallback para gestionar URL no definidas.

El enrutamiento en Laravel permite a los usuarios asignar una URL a una acción o controlador específico;por ejemplo, cuando se solicita una URL, qué acción se realiza:

  • Los datos se obtienen de una URL
  • Procesar un formulario
  • Mostrar el perfil de un usuario
  • Enviar un pedido

En este artículo, explicaré el enrutamiento de Laravel en detalle, cómo configurar las rutas de Laravel y las técnicas avanzadas de enrutamiento. Suponiendo que conozcas la introducción básica a la instalación de Laravel, puedes empezar con esta guía de inmediato.

¿Qué es una ruta en Laravel?

En Laravel, una ruta indica a una aplicación cómo debe responder a diferentes peticiones HTTP. Por ejemplo, qué ocurre cuando se realiza una petición GET a determinadas URL. Las rutas se sitúan entre la solicitud del usuario y la acción que realizará tu aplicación.

Las rutas se definen en el directorio routes , que contiene varios archivos: routes/web.php para la aplicación web y, para las API, routes/api.php.

Cuando un usuario accede a una URL, Laravel comprueba las rutas y luego hace coincidir la petición con la URL y el método HTTP correctos.

Los desarrolladores confían en Cloudways para alojar sus aplicaciones Laravel

Lanza tus aplicaciones Laravel con facilidad en nuestra plataforma en la nube, fácil de usar para los desarrolladores, y experimenta velocidades y rendimientos ultrarrápidos.

Ejemplo de ruta básica:

Aquí tienes un ejemplo sencillo de una ruta en Laravel:

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

El código mencionado anteriormente define una ruta para la página de inicio. Cada vez que esta ruta reciba una petición GET para la URL raíz (/), devolverá la vista «welcome». Las vistas son básicamente el frontend de tu aplicación.

Rutas y acciones del controlador:

Las rutas también pueden vincularse a métodos del controlador en lugar de devolver vistas directamente. Por ejemplo:

Ruta::get(‘usuario/{id}’, ‘UserController@show’);

Esta ruta define una petición GET para user/{id} y apunta al método show del UserController. El {id} es un parámetro de ruta dinámico que se pasa al método del controlador.

Grupos de rutas y middleware:

Las rutas de Laravel se pueden agrupar para organizarlas mejor. Puedes agrupar rutas que compartan atributos comunes, como la autenticación o determinados espacios de nombres. También se puede adjuntar middleware a las rutas para realizar tareas como verificar si un usuario está autenticado antes de acceder a una ruta.

Comprender los métodos HTTP en el enrutamiento de Laravel

Las rutas en Laravel definen lo que se supone que debe hacer tu aplicación (la acción a realizar) cuando se accede a una URL específica. Las rutas están vinculadas a «acciones del controlador«, que se clasifican según el tipo de solicitud. Por ejemplo GET, POST, PUT, DELETE, PATCH y OPTIONS.

Métodos de petición HTTP en el enrutamiento de Laravel

GET: Se utiliza para recuperar datos del servidor. Lo utilizamos para mostrar datos. Por ejemplo

Route::get('/home', 'HomeController@index');

POST: Se utiliza para enviar datos al servidor para crear recursos o enviar formularios. Podemos utilizarlo así, por ejemplo:

Route::post('/submit', 'FormController@submit');

PUT: Se utiliza para actualizar un recurso existente. Por ejemplo

Route::put('/user/{id}', 'UserController@update');

DELETE: Se utiliza para eliminar un recurso. Por ejemplo, podemos utilizarlo de esta forma:

Route::delete('/user/{id}', 'UserController@destroy');

PATCH: Es similar al método PUT, pero en lugar de utilizarse para actualizar un recurso (es decir, sustituir todo el recurso), se utiliza para actualizar parcialmente el recurso del usuario. Por ejemplo

Route::patch('/user/{id}', 'UserController@patchUpdate');

OPCIONES: Se utiliza para recuperar información sobre las opciones de comunicación disponibles para un recurso específico, a menudo utilizado en las solicitudes API. No se suele utilizar en el enrutamiento básico, pero es relevante para gestionar solicitudes que implican compartir recursos entre orígenes (CORS). Por ejemplo:

Route::options('/user', 'UserController@options');

Ejemplo de ruta con diferentes métodos HTTP

A continuación te explicamos cómo puedes definir rutas con diferentes métodos HTTP en Laravel:

  • Route::get(‘/user/{id}’, ‘UserController@show’); // Esto es una petición GET
  • Route::post(‘/user’, ‘UserController@store’); // Esta es una petición POST
  • Route::put(‘/user/{id}’, ‘UserController@update’); // Esta es la petición PUT
  • Route::delete(‘/user/{id}’, ‘UserController@destroy’); // Esta es la petición DELETE

Las rutas se definen en Laravel dentro de la clase Ruta. Tienen un verbo HTTP, la ruta a la que responder, y un cierre, o una estrategia de controlador.

Cómo crear rutas en Laravel

Nota: Todas las solicitudes de publicar, poner y eliminar requieren que se envíe el token CSRF junto con la solicitud. De lo contrario, la solicitud será rechazada. Más información sobre la protección CSRF en la documentación oficial de Laravel.

Veamos cómo puedes crear tus propias rutas en Laravel. Voy a crear una ruta básica para este ejemplo, que imprimirá una tabla de 2 en la vista que crearemos más adelante.

A medida que avance, perfeccionaré nuestro ejemplo de ruta básica añadiendo parámetros, expresiones regulares, nomenclatura de rutas, agrupación y middleware.

1. Define tu primera ruta en Laravel

Empecemos por lo básico definiendo una ruta sencilla en Laravel. Aquí tienes una ruta que imprime la tabla de multiplicar de 2 cuando se accede a ella:

Route::get('/table', function () {
    for($i = 1; $i <= 10; $i++){
        echo "$i * 2 = " . $i * 2 . "<br>";
    }
});

En este ejemplo, utilizamos una petición GET para la ruta /tabla , que muestra la tabla de 2 en la pantalla.

2. Crear rutas dinámicas con parámetros

Ahora, estoy añadiendo un elemento dinámico al permitir que los usuarios elijan el número para la tabla de multiplicar. De esta forma, pueden especificar cualquier número que deseen, y la ruta imprimirá la tabla de ese número:

Route::get('/table/{number}', function ($number) {
    for($i = 1; $i <= 10; $i++){
        echo "$i * $number = " . $i * $number . "<br>";
    }
});

Con esta ruta, cuando los usuarios accedan a /tabla/3, por ejemplo, verán la tabla de multiplicar del 3.

3. Haz que los parámetros sean opcionales para mayor flexibilidad

¿Qué pasa si quiero una tabla por defecto pero permitir que los usuarios especifiquen una si lo desean? Laravel nos permite establecer parámetros opcionales, haciendo que nuestras rutas sean más flexibles.

He aquí cómo:

Route::get('/table/{number?}', function ($number = 2) {
    for($i = 1; $i <= 10; $i++){
        echo "$i * $number = " . $i * $number . "<br>";
    }
});

En este caso, si un usuario visita simplemente /table, obtendrá por defecto la tabla del 2. Pero si van a /table/5, verán la tabla del 5.

4. Controlar los parámetros de ruta con expresiones regulares

Ahora, para asegurarnos de que sólo se pasan números a la función {number} añado una restricción con una expresión regular. Esto evita cualquier entrada inesperada:

Route::get('/table/{number?}', function ($number = 2) {
    for($i = 1; $i <= 10; $i++){
        echo "$i * $number = " . $i * $number . "<br>";
    }
})->where('number', '[0-9]+');

Con esta restricción, si alguien intenta acceder a /table/abc, Laravel lanzará un error en lugar de intentar mostrar una tabla.

5. Nombra tus rutas para facilitar la consulta

Nombrar las rutas es útil cuando queremos hacer referencia a ellas en otra parte de la aplicación. En lugar de codificar URLs, podemos referirnos a la ruta por su nombre. A continuación te explicamos cómo añadir un nombre a nuestra ruta:

Route::get('/table/{number?}', function ($number = 2) {
    for($i = 1; $i <= 10; $i++){
        echo "$i * $number = " . $i * $number . "<br>";
    }
})->where('number', '[0-9]+')->name('table');

Para generar una URL para esta ruta, ahora puedo utilizar:

$url = route('table');

Y redirigir a esta ruta:

return redirect()->route('table');

6. Rutas en grupo para una mejor organización

Ahora, estoy agrupando rutas para mantener organizado todo lo relacionado con la tabla de multiplicar. Añadiendo un prefijo, puedo agrupar todas las rutas relacionadas con la tabla bajo una ruta URL común. He aquí un ejemplo:

Route::prefix('table')->group(function () {
    Route::get('/{number?}', function ($number = 2) {
        for ($i = 1; $i <= 10; $i++) {
            echo "$i * $number = " . $i * $number . "<br>";
        }
    });
    Route::get('/info/{number?}', 'TableController@info');
});

En este caso, he agrupado estas rutas bajo /table, de modo que tanto /table/{number} como /table/info/{number} están anidadas bajo el prefijo table. Esto mantiene limpio mi archivo de rutas y agrupa las cosas relacionadas con las tablas.

7. Aplica middleware para un mayor control

Ahora, estoy añadiendo middleware para garantizar que sólo los usuarios autentificados puedan acceder a las rutas de la tabla. Por ejemplo

Route::middleware(['auth'])->prefix('table')->group(function () {
    Route::get('/{number?}', function ($number = 2) {
        for ($i = 1; $i <= 10; $i++) {
            echo "$i * $number = " . $i * $number . "<br>";
        }
    });
});

En este ejemplo, a la ruta /table/{number} sólo pueden acceder los usuarios registrados.

Utilizar una ruta básica para llamar a una vista

En routes/web.php, define la ruta para devolver una vista con la tabla:

Route::get('/table/{number?}', function ($number = 2) {
    // Pass the 'number' to the view
    return view('table', ['number' => $number]);
})->where('number', '[0-9]+');

Esto mostrará la tabla de 2 (por defecto) o una tabla para el número proporcionado en la URL, ya que tenemos un número de parámetro opcional en el ejemplo de ruta anterior.

Ahora necesitas crear una vista que será llamada cuando se acceda a nuestra URL (/table). Para crear una vista, ve al directorio resources/views, y crea un archivo table.blade.php. En este archivo, puedes mostrar la tabla de multiplicar:

Éste es el código que puedes añadir al archivo table.blade.php para que muestre una tabla con la multiplicación de los números del 1 al 10 para el número introducido en la URL.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Multiplication Table</title>
</head>
<body>
    <h1>Multiplication Table for {{ $number }}</h1>
    <table border="1">
        <tr>
            <th>Multiplier</th>
            <th>Result</th>
        </tr>
        @for($i = 1; $i <= 10; $i++)
            <tr>
                <td>{{ $i }}</td>
                <td>{{ $i * $number }}</td>
            </tr>
        @endfor
    </table>
</body>
</html>

Ahora, si accedes a la URL de la ruta que hemos creado en tu servidor local, esto es lo que deberías ver:

Y como hemos utilizado un parámetro opcional en nuestra ruta, puedo pasar un número en la URL (por ejemplo, /tabla/5) para mostrar la tabla de multiplicar de ese número.

Crear una ruta alternativa para URLs indefinidas

Ahora bien, ¿qué pasa si el usuario accede a una URL no definida? En lugar de mostrarle un mensaje de error genérico, podemos redirigirle a otra página.

Podemos definir una ruta alternativa utilizando el método Route::fallback. Aquí tienes un ejemplo:

Route::fallback(function () {
    return response()->view('404', [], 404);
});

Con esto, si una URL no coincide con ninguna de las rutas existentes que hemos creado, serán dirigidos a la vista errors.404, que crearemos en el siguiente paso.

Mejora el rendimiento del enrutamiento de Laravel con Cloudways

Optimiza tu enrutamiento Laravel con la plataforma de alojamiento de Cloudways, que cuenta con almacenamiento en caché avanzado, almacenamiento SSD y pilas de servidores optimizadas para una gestión más rápida de las solicitudes y experiencias de usuario sin interrupciones.

Configurar una página 404 personalizada

Ahora vamos a crear una vista de página 404 para nuestra ruta alternativa. Para ello, crea un nuevo archivo de vista y llámalo 404.blade.php.

Ahora añádele este código:

<!DOCTYPE html>
<html>
<head>
    <title>Page Not Found</title>
    <link rel="stylesheet" href="path-to-your-css">
</head>
<body>
    <h1>Oops! Page Not Found</h1>
    <p>It looks like the page you’re looking for doesn’t exist.</p>
    <a href="{{ url('/') }}">Return to Home</a>
</body>
</html>

Ahora vamos a probarlo.

Conclusión

Ahí lo tienes. Este ha sido un tutorial básico sobre rutas Laravel. He cubierto todos los conceptos relacionados en esta guía, como expresiones regulares y nomenclatura de rutas, vinculación, agrupación, etc.

También aprendimos a crear vistas y a llamarlas con nuestras rutas. Incluso implementamos una ruta fallback para dirigir a los usuarios a una página 404, con el fin de garantizar una mejor experiencia de usuario.

También puedes consultar la documentación oficial de enrutamiento de Laravel para obtener más información sobre el enrutamiento. Si quieres alojar proyectos Laravel, considera el uso de Cloudways para una experiencia optimizada.

P) ¿Qué es una ruta Laravel?
A) Una ruta Laravel es una forma de definir cómo responde tu aplicación a peticiones HTTP específicas. Las rutas asignan URL a métodos o cierres del controlador, permitiendo la navegación y la funcionalidad dentro de la app.

P) ¿Cuál es la diferencia entre URL y ruta en Laravel?
A) Una URL es la dirección web de un recurso, mientras que una ruta en Laravel es un mapeo lógico que define qué controlador o función debe manejar esa URL. Las rutas proporcionan una forma flexible de gestionar las URL de forma dinámica.

P) ¿Cómo utilizar las rutas API de Laravel?
A) Define rutas API en el archivo routes/api.php. Estas rutas no tienen estado y están pensadas para los puntos finales de la API. Utiliza los métodos Route::get, Route::post y otros para gestionar las solicitudes de la API.

P) ¿Cómo obtener la URL de la ruta en Laravel?
A) Utiliza la función de ayuda route() para generar una URL para una ruta con nombre, por ejemplo, route(‘nombreRuta’). Alternativamente, utiliza la función url() para obtener URL personalizadas.

Share your opinion in the comment section. COMMENT NOW

Share This Article

Abdul Rehman

Abdul es un experto en tecnología, aficionado al café y al marketing creativo al que le encanta estar al día de las últimas actualizaciones de software y aparatos tecnológicos. También es un hábil escritor técnico capaz de explicar conceptos complejos de forma sencilla para un público amplio. Abdul disfruta compartiendo sus conocimientos sobre el sector de la Nube a través de manuales de usuario, documentación y entradas de blog.

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

¿Quieres experimentar la plataforma Cloudways en todo su esplendor?

Realice una visita guiada GRATUITA de Cloudways y compruebe usted mismo lo fácil que es administrar su servidor y sus aplicaciones en la plataforma de alojamiento en la nube líder.

Iniciar mi recorrido