我需要在zf2登录后进行重定向 例如,使用url登录页面 /user/login?redirect=http%3A%2F%site.loc%2Fcategory%test 我需要从网址获取路由 也许一些
$router->getRouteFromUri($uri);
答案 0 :(得分:2)
所以@cptnk说 最好的方法是
$request = new Request();
$request->setMethod(Request::METHOD_GET);
$request->setUri($uri);
$this->router->match($request);
返回带有参数的路径
答案 1 :(得分: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。