[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




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"



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

Cela fonctionne également dans Laravel 5.4. *




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




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

url()->current();



Laravel 5.2 Vous pouvez utiliser

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

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




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'
]);



Related