[Php] Comment obtenir le nom de l'itinéraire actuel dans laravel 5?


Answers

En utilisant Laravel 5.1, vous pouvez utiliser

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

J'essaie d'obtenir le nom de l'itinéraire actuel en utilisant Laravel 5.

En laravel 4 j'ai pu le faire en utilisant Route :: currentRouteName () .

Comment puis-je le faire dans Laravel 5?

Merci




Le chemin le plus court est Route facade \Route::current()->getName()

Cela fonctionne également dans Laravel 5.4. *




En 5.2, vous pouvez utiliser la requête directement avec:

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

ou via la méthode d'assistance:

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

Exemple de sortie:

"home.index"



Dans un fichier d'aide,

Vous pouvez utiliser Route::current()->uri() pour obtenir l'URL actuelle.

Par conséquent, si vous comparez le nom de votre itinéraire pour définir la classe active sur le menu, il serait bon si vous utilisez

Route::currentRouteName() pour obtenir le nom de route et comparer




Dans une action de contrôleur, vous pouvez simplement faire:

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

$request here est résolu par le conteneur de service de Laravel.

getName() renvoie le nom de la route pour les routes nommées seulement, sinon null (mais vous pouvez toujours explorer l'objet \Illuminate\Routing\Route pour quelque chose d'intéressant).

En d'autres termes, vous devez avoir votre itinéraire défini comme ceci pour avoir "nameOfMyRoute" retourné:

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



Laravel 5.2 Vous pouvez utiliser

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

Il vous donnera le nom actuel de l'itinéraire.




Si vous avez besoin d' url , pas de nom de route , vous n'avez pas besoin d'utiliser / exiger d'autres classes:

url()->current();



Links