¿Cómo obtener el nombre de la ruta actual?

En laravel 4 pude obtener el nombre de la ruta actual usando

Route::currentRouteName()

¿Cómo puedo hacerlo en laravel 5?

Prueba esto

 Route::getCurrentRoute()->getPath(); 

o

 \Request::route()->getName() 

de v5. +

 use Illuminate\Support\Facades\Route; $currentPath= Route::getFacadeRoot()->current()->uri(); 

Laravel 5.3

 Route::currentRouteName(); //use Illuminate\Support\Facades\Route; 

O si necesita el nombre de la acción

 Route::getCurrentRoute()->getActionName(); 

Puede encontrar todo lo relacionado con las Rutas laravel en la API de Laravel: http://laravel.com/api/5.0/Illuminate/Routing/Router.html http://laravel.com/api/5.0/Illuminate/Routing.html

Recuperando el URI de solicitud

El método de ruta devuelve el URI de la solicitud. Por lo tanto, si la solicitud entrante está dirigida a http://example.com/foo/bar , el método de ruta devolverá foo/bar :

 $uri = $request->path(); 

El método is permite verificar que el URI de la solicitud entrante coincide con un patrón dado. Puede usar el carácter * como comodín cuando utiliza este método:

 if ($request->is('admin/*')) { // } 

Para obtener la URL completa, no solo la información de ruta, puede usar el método url en la instancia de solicitud:

 $url = $request->url(); 

Usando Laravel 5.1, puedes usar

 \Request::route()->getName() 

Encontré una forma de encontrar que el nombre de la ruta actual funciona para laravel v5 , v5.1.28 y v5.2.10

Espacio de nombre

 use Illuminate\Support\Facades\Route; 

y

 $currentPath= Route::getFacadeRoot()->current()->uri(); 

Para Laravel laravel v5.3 puedes usar:

 use Illuminate\Support\Facades\Route; Route::currentRouteName(); 

Si necesita url , no nombre de ruta , no necesita usar / requerir ninguna otra clase:

 url()->current(); 

Si desea seleccionar un menú en varias rutas, puede hacer esto:

 
  •   Products
  • O si desea seleccionar solo un menú, simplemente puede hacer esto:

     
  •   Users
  • También probado en Laravel 5.2

    Espero que esto ayude a alguien.

    Laravel 5.2 Puedes usar

     $request->route()->getName() 

    Le dará el nombre de la ruta actual.

    El camino más corto es Route facade \Route::current()->getName()

    Esto también funciona en laravel 5.4. *

    Puedes usar en la plantilla:

     getPath(); ?>  

    Ahora en Laravel 5.3 estoy viendo que se puede hacer de manera similar lo que has intentado:

     $route = Route::current(); $name = Route::currentRouteName(); $action = Route::currentRouteAction(); 

    https://laravel.com/docs/5.3/routing#accessing-the-current-route

    En 5.2, puede usar la solicitud directamente con:

     $request->route()->getName(); 

    o mediante el método de ayuda:

     request()->route()->getName(); 

    Ejemplo de salida:

     "home.index" 

    En una acción de controlador, puede hacer:

     public function someAction(Request $request) { $routeName = $request->route()->getName(); } 

    $request aquí se resuelve mediante el contenedor de servicios de Laravel.

    getName() devuelve el nombre de la ruta para las rutas con nombre , null (si no, puede explorar el objeto \Illuminate\Routing\Route para buscar otra cosa de interés).

    En otras palabras, debe tener su ruta definida así para que se devuelva “nameOfMyRoute”:

     Route::get('my/some-action', [ 'as' => 'nameOfMyRoute', 'uses' => 'MyController@someAction' ]); 

    Request::path(); es mejor, y recuerde Use Request;

    He utilizado para obtener el nombre de la ruta en larvel 5.3

    Request::path()

    En \Illuminate\Routing\Router.php puede usar el método currentRouteNamed() inyectando un Router en su método de controlador. Por ejemplo:

     use Illuminate\Routing\Router; public function index(Request $request, Router $router) { return view($router->currentRouteNamed('foo') ? 'view1' : 'view2'); } 

    o usando la fachada de la ruta:

     public function index(Request $request) { return view(\Route::currentRouteNamed('foo') ? 'view1' : 'view2'); } 

    También podría usar el método is() para verificar si la ruta se llama cualquiera de los parámetros dados, pero tenga cuidado con este método usa preg_match() y he experimentado que causa un comportamiento extraño con los nombres de las rutas con puntos (como 'foo.bar.done' ). También está la cuestión del rendimiento en torno a preg_match() que es un gran tema en la comunidad PHP.

     public function index(Request $request) { return view(\Route::is('foo', 'bar') ? 'view1' : 'view2'); } 

    En un archivo Helper,

    Puedes usar Route::current()->uri() para obtener la URL actual.

    Por lo tanto, si compara el nombre de su ruta para establecer la clase activa en el menú, sería bueno si usa

    Route::currentRouteName() para obtener el nombre de la ruta y comparar

    Accediendo a la ruta actual (v5.3 en adelante)

    Puede usar los métodos actuales, currentRouteName y currentRouteAction en la fachada de la ruta para acceder a la información sobre la ruta que maneja la solicitud entrante:

     $route = Route::current(); $name = Route::currentRouteName(); $action = Route::currentRouteAction(); 

    Consulte la documentación de API para la clase subyacente de la fachada de ruta y la instancia de ruta para revisar todos los métodos accesibles.

    Referencia: https://laravel.com/docs/5.2/routing#accessing-the-current-route