Routes 如何从zf2中的url获取路由

Routes 如何从zf2中的url获取路由,routes,zend-framework2,Routes,Zend Framework2,我需要在登录zf2后进行重定向 例如,使用url进入登录页面 /用户/登录?重定向=http%3A%2F%site.loc%2fcontegory%test 我需要从url获取路由 也许是一些 $router->getRouteFromUri($uri); 正如@cptnk所说 最好的办法是 $request = new Request(); $request->setMethod(Request::METHOD_GET); $req

我需要在登录zf2后进行重定向 例如,使用url进入登录页面 /用户/登录?重定向=http%3A%2F%site.loc%2fcontegory%test 我需要从url获取路由 也许是一些

$router->getRouteFromUri($uri);
正如@cptnk所说 最好的办法是

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

        $this->router->match($request);
返回带有参数的路由,如@cptnk所说 最好的办法是

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

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

返回带有参数的路由的请求实例可用于返回请求参数。可以使用以下任何一种方法从控制器中获取此信息

$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。

请求实例可用于返回请求参数。可以使用以下任何一种方法从控制器中获取此信息

$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。

请求类如何@cptnk是的,谢谢,可能会有帮助!请求类呢@cptnk是的,谢谢,可能会有帮助!