2014-10-30 86 views
1

我需要在zf2登錄後進行重定向 例如來登錄頁面的url /user/login?redirect=http%3A%2F%site.loc%2Fcategory%測試 ,我需要從URL 獲取路線也許有些如何從zf2中的url獲取路由

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

請求類怎麼樣? http://framework.zend.com/manual/2.0/en/modules/zend.http.request.html – cptnk 2014-10-30 08:44:17

+0

@cptnk是的,謝謝它可能有幫助! – 2014-10-30 08:48:34

回答

2

因此,作爲@cptnk說 最好的辦法是

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

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

返回使用參數

路線
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); 

如果您需要產生的網址,您可以使用網址插件Zend\Mvc\Controller\Plugin\Url

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

上述內容僅僅是一個便捷的類,用於直接手動將URL與路由器進行組合。