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

时间:2012-11-13 18:25:27

标签: zend-framework2

我用http://blog.evan.pro/creating-a-simple-view-helper-in-zend-framework-2创建了简单的ViewHelper。如何在这个助手中获取URL参数? $ this-> params('param')仅适用于控制器......

2 个答案:

答案 0 :(得分:1)

鉴于博客文章中的代码,您可以在视图助手中使用此代码:

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

// or

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

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

答案 1 :(得分:1)

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

Module.php

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

        )

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

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将返回数组格式中的所有路径参数。