2017-11-24 3 views
0

In meinem Schlanke Rahmen 3-Router Ich habe die folgende Route: /account/{username}URI abrufen Vor der Bindung von Parametern

In meiner Middleware, wenn ich die Anforderungs-URI abrufen es so etwas wie /account/jordan aussieht. Ist es in meiner Middleware möglich, den URI-String vor dem Binding des username-Parameters abzurufen?

In meiner Middleware würde Ich mag die Zeichenfolge abzurufen, die ich in meinem Routen definiert haben: /account/{username}

Dank

Antwort

0

Die Argumente von der Route in der routeInfo zur Verfügung, die eine Anfrage-Attribut , können Sie es mit

$routeInfo = $request->getAttributes('routeInfo'); 
$args = $routeInfo[2]; 
$username = $args['username']; 

die routeInfo ist nur verwenden, wenn Sie die Einstellung determineRouteBeforeAppMiddleware wie folgt aktivieren:

+0

Ich möchte das String-Literal '/ account/{Benutzername}' ohne die Bindung von Parametern, danke – Jordan

0

Sie finden alle Informationen zur Route im route Attribut des $ request Objekts. Die Einstellung determineRouteBeforeAppMiddleware muss auf true eingestellt sein.

$route = $request->getAttribute('route'); 

// do something with that information 
$name = $route->getName(); 
$groups = $route->getGroups(); 
$methods = $route->getMethods(); 
$arguments = $route->getArguments(); 
Verwandte Themen