Zend framework2 如何使用Zend Framework 2在ViewHelper中获取URL参数

Zend framework2 如何使用Zend Framework 2在ViewHelper中获取URL参数,zend-framework2,Zend Framework2,我已经用创建了简单的ViewHelper。如何在此帮助器中获取URL参数$此->参数('param')仅在控制器中工作…根据博客文章中的代码,您可以在视图帮助器中使用此代码: $this->request->getPost('param'); // post parameter // or $this->request->getQuery('param'); // query parameter 示例中的代码接收当前请求的Zend\Http\Request对象的实

我已经用创建了简单的ViewHelper。如何在此帮助器中获取URL参数$此->参数('param')仅在控制器中工作…

根据博客文章中的代码,您可以在视图帮助器中使用此代码:

$this->request->getPost('param');  // post parameter

// or

$this->request->getQuery('param'); // query parameter

示例中的代码接收当前请求的
Zend\Http\Request
对象的实例,并将其存储在视图帮助程序名为
Request
的属性中,以便您可以使用Request属性访问请求对象及其信息。

在视图帮助程序中,您必须添加如下代码:

Module.php

 'factories' => array(
            'myViewHelper' => function($pm) {
                return new MyView($pm);
            },

        )
现在在Helper类文件中,您必须添加以下代码

public function __construct($pm) {
    $this->pluginManager = $pm;
    $this->serviceLocator = $this->pluginManager->getServiceLocator();
    $this->routeMatch = $this->serviceLocator->get('Router')->match($this->serviceLocator->get('Request'));
}
public function __invoke() {
    $params = $this->getRouteMatch()->getParams();

}

此处$params将以数组格式返回所有路由参数。

不,这不起作用,使用getQuery()我只能在“?”符号之后访问参数,我无法获取路由参数。还有其他想法吗?要获取路由参数,您需要mvc路由器对象,但该对象不可用。如果您修改构造函数以注入$locator->get('Router'),那么您应该能够访问路由参数。