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

Php Zend Framework-需要从视图访问GET参数,php,zend-framework,Php,Zend Framework,我正在使用Zend框架,我需要的是在我的视图中构造一个url。通常在常规php代码中,我会使用全局$\u GET获取GET变量。但是,使用Zend,我将其设置为清除URI,以便: ?ac=列表和过滤器=工程和页面=2 看起来像 索引/ac/list/filter/works/page/2 在我看来,我正在设置一个links cs,这样,如果GET变量filter equals工作,那么该链接的颜色将不同,它将指向相同的页面,仅链接如下: 索引/ac/list/filter/extra/page/

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

?ac=列表和过滤器=工程和页面=2

看起来像 索引/ac/list/filter/works/page/2

在我看来,我正在设置一个links cs,这样,如果GET变量filter equals工作,那么该链接的颜色将不同,它将指向相同的页面,仅链接如下:

索引/ac/list/filter/extra/page/2


像wise一样,我有许多其他链接,所有这些链接都只有一个获取值-我如何设置它-我使用的是Zend框架。

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

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

要了解更多信息,请查看以下博文(不,我不是作者):

编辑:


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

访问请求对象的一种常见方法是将其保存在注册表中


  • 您可以从控制器传入它:
    $this->view->page=$this->\u getParam('page')


    脚注:我同意@alexn.

    在视图中直接访问请求变量,您可以执行以下操作:

    Zend_Controller_Front::getInstance()->getRequest()->getParam('key');
    
    但正如其他人所说,这不是一个好主意。这可能比较容易,但是考虑其他选项:

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

    我正在使用Zend Framework v1.11,我就是这样做的

    <h3><?= $this->request->fullname ?></h3>
    
    控制器中

    $this->view->request = $this->_request;
    
    然后,在视图中您可以访问如下任何请求参数

    <h3><?= $this->request->fullname ?></h3>
    
    
    
    @Ali,是的。yourdomain.com/news/id/124/page/2_getParam('id')
    在控制器中,$\u GET['page']是$this->_getParam('page');我的意思是我需要访问视图中的参数…:(不,您不需要这样做。告诉我们原因,我们可能会给您一个解决方案。以下是原因……比如,对于生成分页链接,页面链接不应该篡改现有的查询参数。它们应该在生成的链接中保留它们。