Cómo obtener el nombre de la ruta actual en Laravel

Laravel

Las rutas de laravel te permiten crear relaciones entre las URLs de tu aplicación y las funcionalidades de la misma. Una ruta podría ejecutar una función, llamar al método de algún controlador o devolver una vista de Blade. Si por ejemplo accedes a la URL dominio.com/posts, tu aplicación podría mostrar una vista que incluya la lista de posts del blog de tu aplicación.

Laravel permite asignar nombres a las rutas que definas. En este tutorial vamos a ver cómo puedes obtener el nombre de la ruta actual, ya sea desde un controlador o desde una vista creada con el motor Blade.

Nombre de la ruta actual en un Controlador

En Laravel existen varios métodos que te permitirán obtener el nombre de al ruta actual con un Controlador. Podrás obtenerlos tanto con facade Request como con la facade Route. Las facades o fachadas no son más que interfaces estáticas que proporcionan un acceso directo a algunas de las funcionalidades más utilizadas de Laravel.

Para usar la facade Route, lo primero que tendrás que hacer es incluir su clase correspondiente en la parte superior del archivo de tu controlador:

use Illuminate\Support\Facades\Route;

Luego, en tu controlador, bastará con que uses el método estático currentRouteName de la clase Route, que devolverá el nombre de la ruta actual:

$nombreRuta = Route::currentRouteName();
echo($nombreRuta);

Además, si prefieres no incluir la clase Route mediante la sentencie use, también podrías obtener la ruta de este modo:

$nombreRuta = \Route::currentRouteName::currentRouteName();
echo($nombreRuta);

Si prefieres usar la facade Request, primero incluye la clase correspondiente a la facade Request:

use Illuminate\Support\Facades\Request;

Luego obtén el nombre de la ruta actual usando el método route()->getName() de la facade Request.

$nombreRuta = Request::route()->getName();
echo($nombreRuta);

Si prefieres no incluir la clase Request mediante la sentencie use, también podrías obtener la ruta de este modo:

$nombreRuta = Request::route()->getName();
echo($nombreRuta);

Nombre de la ruta actual en un Middleware

Los métodos mediante los cuales puedes obtener el nombre de la ruta actual en los controladres y en los middleware de Laravel son los mismos, ya que en un middlware también podrás usar las facades Request y Route.

Para usar la facade Route, incluye la clase Illuminate\Support\Facades\Route  correspondiente a la facade Route en la parte superior del archivo de tu middleware mediante la sentencia use:

use Illuminate\Support\Facades\Route;

Luego usa el método estático currentRouteName de la clase Route para devolver el nombre de la ruta actual:

$nombreRuta = Route::currentRouteName();
echo($nombreRuta);

Además, si prefieres no incluir la clase Route mediante la sentencie use, también podrías obtener la ruta de este modo:

$nombreRuta = \Route::currentRouteName::currentRouteName();
echo($nombreRuta);

Si prefieres usar la facade Request, incluye la claseIlluminate\Support\Facades\Request en la parte superior del archivo de tu middleware utilizando la sentencia use:

use Illuminate\Support\Facades\Request;

Luego obtén el nombre de la ruta actual usando el método route()->getName() de la facade Request.

$nombreRuta = Request::route()->getName();
echo($nombreRuta);

Si prefieres no incluir la clase Request mediante la sentencie use, también podrías obtener la ruta de este modo:

$nombreRuta = \Request::route()->getName();
echo($nombreRuta);

Nombre de la ruta actual en una Vista

También puedes obtener el nombre de la ruta actual en las vistas creadas con Blade. Para ello debes usar la facade Route en la vista:

{{ Route::currentRouteName() }}

También puedes usar la facade Request:

{{ Request::route()->getName() }}

Y esto ha sido todo. Para aprender más acerca del objeto Request, consulta la documentación de Laravel.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *