2014-10-30 2 views
1

zf2에서 로그인 한 후 리디렉션해야합니다. 예를 들어 URL이 /user/login?redirect=http%3A%2F%site.loc%2Fcategory% 인 로그인 페이지로 이동하십시오. @cptnk가 을 말한대로 어쩌면 일부URL에서 zf2 경로를 얻는 방법

$router->getRouteFromUri($uri); 
+1

요청 클래스는 어떻습니까? http://framework.zend.com/manual/2.0/en/modules/zend.http.request.html – cptnk

+0

@cptnk 예 도움이 될 것입니다. –

답변

2

그래서 가장 좋은 방법은 PARAMS

과 경로를 반환

 $request = new Request(); 
     $request->setMethod(Request::METHOD_GET); 
     $request->setUri($uri); 

     $this->router->match($request); 

입니다 테스트 와 나는 URL을 에서 경로를 얻을 필요

1

요청 인스턴스는 요청 매개 변수를 리턴하는 데 사용될 수 있습니다. 이것은 다음 중 하나를 사용하여 컨트롤러 내에서 가져올 수 있습니다.

$request = $this->getRequest(); 
$request = $this->getEvent()->getRequest(); 
$request = $this->getServiceLocator()->get('request'); 

그러나, 당신은 컨트롤러에서 액세스 할 필요합니다, 이미 경로 또는 기타 요청 매개 변수에 사용할 수있는 Zend\Mvc\Controller\Plugin\Params있다.

$redirect = $this->params('redirect', false); 
// or 
$redirect = $this->params()->fromQuery('redirect', false); 

당신이 URL을 생성 해야하는 경우에는 URL 플러그인 Zend\Mvc\Controller\Plugin\Url를 사용할 수 있습니다.

$this->url()->fromRoute(
    $nameOfRoute, // use null for last matched route 
    $arrayOfRouteParams, 
    $booleanShouldReuseMatchedParams, 
    array(
     'query' => array('redirect' => $redirctUrl) 
    ) 
); 

위의 코드는 단순히 라우터와 직접 URL을 수동으로 조합하기위한 편리한 클래스입니다.