ruta route obtener name domain actual php laravel laravel-5 routes laravel-5.5 current-working-directory laravel-routing

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



route laravel blade (21)

Ahora en Laravel 5.3 veo que se puede hacer de manera similar que intentaste:

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

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

En Laravel 4 pude obtener el nombre de la ruta actual usando ...

Route::currentRouteName()

¿Cómo puedo hacerlo en Laravel 5?


El camino más corto es Ruta fachada /Route::current()->getName()

Esto también funciona en laravel 5.4. *


En 5.2, puede usar la solicitud directamente con:

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

o mediante el método auxiliar:

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

Ejemplo de salida:

"home.index"


En mi opinión, la solución más fácil es usar este ayudante:

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

Para los documentos, vea este enlace


En un archivo auxiliar,

Puede 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ú, entonces sería bueno si usa

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


En una acción de controlador, podría hacer lo siguiente:

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

$request aquí es resuelta por el contenedor de servicio de Laravel.

getName() devuelve el nombre de la ruta solo para rutas con nombre , de lo contrario es null (pero aún podría explorar el objeto /Illuminate/Routing/Route busca de algo más de interés).

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

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


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

Request::path()


Laravel 5.2 Puedes usar

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

Te dará el nombre de la ruta actual.


Mirando /Illuminate/Routing/Router.php puede usar el método currentRouteNamed() inyectando un enrutador en el método de su 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 nombra con alguno de los parámetros dados, pero tenga en cuenta que este método usa preg_match() y he experimentado que causa un comportamiento extraño con nombres de ruta punteados (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''); }


Por alguna razón, no pude usar ninguna de estas soluciones. así que acabo de declarar mi ruta en web.php como $router->get(''/api/v1/users'', [''as'' => ''index'', ''uses'' => ''UserController@index'']) y en mi controlador $routeName = $request->route()[1][''as'']; el nombre de la ruta usando $routeName = $request->route()[1][''as'']; que $request es /Illuminate/Http/Request $request typehinted parámetro en el método de index de UserController

utilizando Lumen 5.6. Espero que ayude a alguien.


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 necesitas el nombre de la acción

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

Puede encontrar todo sobre las rutas de 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. Entonces, si la solicitud entrante está dirigida a http://example.com/foo/bar , el método de ruta devolverá foo/bar :

$uri = $request->path();

Este método le permite verificar que el URI de la solicitud entrante coincida con un patrón determinado. Puede utilizar el carácter * como comodín cuando utilice este método:

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

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

$url = $request->url();

Para Laravel 5.2 y 5.3

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

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

Documentación de ruta Laravel 5.2

Hay una opción para usar la solicitud para obtener la ruta

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


Puedes usar en la plantilla:

<?php $path = Route::getCurrentRoute()->getPath(); ?> <?php if (starts_with($path, ''admin/'')) echo "active"; ?>


Se encontró una manera de encontrar el nombre de ruta actual que funciona para laravel v5 , v5.1.28 y v5.2.10

Espacio de nombres

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 desea seleccionar el menú en múltiples rutas, puede hacer lo siguiente:

<li class="{{ (Request::is(''products/*'') || Request::is(''products'') || Request::is(''product/*'') ? ''active'' : '''') }}"><a href="{{url(''products'')}}"><i class="fa fa-code-fork"></i>&nbsp; Products</a></li>

O si desea seleccionar un solo menú, simplemente puede hacer lo siguiente:

<li class="{{ (Request::is(''/users'') ? ''active'' : '''') }}"><a href="{{url(''/'')}}"><i class="fa fa-envelope"></i>&nbsp; Users</a></li>

También probado en Laravel 5.2

Espero que esto ayude a alguien.


Si necesita una URL , no un nombre de ruta , no necesita usar / requerir ninguna otra clase:

url()->current();


Solución:

$routeArray = app(''request'')->route()->getAction(); $controllerAction = class_basename($routeArray[''controller'']); list($controller, $route) = explode(''@'', $controllerAction); echo $route;


Usando Laravel 5.1, puedes usar

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


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



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

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

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

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

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


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