Zend framework2 如何使用Zend Framework 2在ViewHelper中获取URL参数
我已经用创建了简单的ViewHelper。如何在此帮助器中获取URL参数$此->参数('param')仅在控制器中工作…根据博客文章中的代码,您可以在视图帮助器中使用此代码: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对象的实
$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'),那么您应该能够访问路由参数。