1

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

4

2 回答 2

2

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

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

// or

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

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

于 2012-11-13T21:43:40.860 回答
1

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

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

于 2018-03-09T13:16:31.953 回答