2017-08-22 1 views
0

J'ai cette route:Laravel Comment obtenir Profil d'itinéraire basé sur la route Nom

Route::get('/test',['as'=>'test','custom_key'=>'custom_value','uses'=>'[email protected]']) 

J'ai essayé d'utiliser $routeProfile=route('test'); Mais le résultat est retourné url string http://domain.app/test

J'ai besoin ['as'=>'test','custom_key'=>'custom_value'] de sorte que Je peux obtenir le $routeProfile['custom_key']

Comment puis-je obtenir une 'valeur personnalisée' basée sur le nom de la route?

+0

Ici 'custom_key' veut dire quoi? –

+0

Salut @AddWebSolutionPvtLtd, je l'ajoute manuellement comme une marque pour le profil d'itinéraire. Peut-être que je peux ajouter 'description' ou 'parent' ou 'is_displayed' pour la hiérarchie des menus. – msdme

+0

J'ai ajouté une réponse de deux façons différentes, vous pouvez choisir selon vos besoins. –

Répondre

0

Pour moyen le plus rapide, maintenant je l'utiliser pour ma question:

function routeProfile($routeName) 
{ 
    $routes = Route::getRoutes(); 
    foreach ($routes as $route) { 
     $action = $route->getAction(); 
     if (!empty($action['as']) && $routeName == $action['as']) { 
      $action['methods'] = $route->methods(); 
      $action['parameters'] = $route->parameters(); 
      $action['parametersNames'] = $route->parametersNames(); 
      return $action; 
     } 
    } 
} 

S'il y a une meilleure réponse, je vais l'apprécier. Merci ...

0

Essayez ceci:

use Illuminate\Support\Facades\Route; 

$customKey = Route::current()->getAction()['custom_key']; 
0

Je crois que vous êtes à la recherche d'un moyen de passer variable à votre itinéraire

Route::get('/test/{custom_key}',[ 
    'uses'=>'[email protected]', 
    'as'=>'test' 
]); 

Vous pouvez générer une URL valide comme si en utilisant route('test',['custom_key'=>'custom_key_vale'])

À votre tour:

<a href="{route('test',['custom_key'=>'custom_key_vale'])}" 

Dans votre méthode de commande:

.... 

public function test(Request $request) 
{ 
    $custom_key = $request->custom_key; 
} 
.... 
0

Vous pouvez essayer un du code ci-dessous:
1. Ajouter use Illuminate\Http\Request; après le code de ligne d'espace de noms

public function welcome(Request $request) 
{ 
    $request->route()->getAction()['custom_key']; 
} 

2. OU avec façade

Ajouter use Route; af ter namespace code ligne

et utiliser ci-dessous dans votre méthode

public function welcome() 
{ 
    Route::getCurrentRoute()->getAction()['custom_key']; 
} 

Les deux sont testés et fonctionnent bien!