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.
Contenidos
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.
Me encanto tu publicación, estoy aprendiendo laravel y tu explicación es muy clara