Zend Framework-需要从视图访问GET参数

问题描述 投票:11回答:5

嗨,我正在使用Zend框架,我需要在我的视图中构造一个url。通常在常规php代码中,我只是使用全局$ _GET来获取GET变量。但是,使用Zend,我将其设置为清除URI,所以:

?ac = list&filter = works&page = 2

看起来像index / ac / list / filter / works / page / 2

在我看来,我正在设置一个链接cs,这样,如果GET变量过滤器相等,则该链接的颜色将有所不同,它将指向仅这样链接的同一页面:

index / ac / list / filter / extra / page / 2

同样,我还有许多其他链接,所有这些链接都只有一个GET值-我该如何设置-我使用Zend框架...

php zend-framework
5个回答
32
投票

要直接在视图中访问请求变量,您可以做:

Zend_Controller_Front::getInstance()->getRequest()->getParam('key');

但是正如其他人所说,这不是一个好主意。这可能更容易,但是请考虑其他选项:

  • 在控制器中设置视图变量
  • 编写一个从请求对象中提取变量的视图助手

5
投票

如果您需要从视图访问GET参数,我认为您使用的是错误的方法。

我建议您使用所有参数设置一条路由,然后从视图中使用$this->url来呈现有效和正确的网址。

有关更多信息,请查看以下博客文章(不,我不是作者):http://naneau.nl/2007/07/08/use-the-url-view-helper-please/

编辑:

如果您想'懒惰',则可以通过执行$this->view->param = $this->_getParam('param')从控制器设置视图参数。然后,您可以通过执行param从视图访问echo $this->param;。但是,我不建议这样做。



1
投票

您可以从控制器传递它:$this->view->page = $this->_getParam('page');

脚注:我同意@alexn。


0
投票

我正在使用Zend Framework v1.11,并且我正在这样做

Controller中>

$this->view->request = $this->_request;

然后在视图

中,您可以访问任何这样的请求参数
<h3><?= $this->request->fullname ?></h3>
© www.soinside.com 2019 - 2024. All rights reserved.