2017-11-24 19 views
0

의 바인딩하기 전에 URI를 검색 나는 다음과 같은 경로를 가지고 : 나는 URI 요청을 검색 할 때 /account/jordan처럼 보일거야, 내 미들웨어에서 /account/{username}내 슬림 프레임 워크 3 라우터에서 매개 변수

합니다. 내 미들웨어에서 사용자 이름 매개 변수 바인딩 전에 URI 문자열을 검색 할 수 있습니까? 내 미들웨어에서

나는 내 경로에 정의한 문자열 검색 싶습니다 요청 - 속성이 경로에서

답변

0

인수는 routeInfo에서 사용할 수있는 /account/{username}

감사합니다 , 당신은

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

이 같은 설정 determineRouteBeforeAppMiddleware을 사용하면 routeInfo에만 사용할 수 있습니다와 함께 사용할 수 있습니다

$settings = ['determineRouteBeforeAppMiddleware' => true]; 
$app = new \Slim\App(['settings' => $settings]); 
+0

매개 변수 바인딩없이 문자열 리터럴'/ account/{username} '을 원합니다. 감사합니다. – Jordan

0

경로에 대한 모든 정보는 $ request 개체의 route 특성에서 찾을 수 있습니다. determineRouteBeforeAppMiddleware 설정을 true으로 설정해야합니다.

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

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