开发者

Zend Framework - need to access a GET parameter from a view

I am using the Zend framework and what I need is to construct a url in my view. Normally in regular php code I'd just grab the GET Variable by using the global $_GET. However with Zend I'm setting it to clean URIs so :

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

Looks like index/ac/list/filter/works/page/2

In my view I'm setting a links cs such that if the GET variable filter equals works then the color of that link would be different and it would point to the same page o开发者_StackOverflownly linked as so:

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

And like wise I have a number of other links all which just one GET value - how do I set this up - I am using the Zend framework.


To access a request variable direct in the view you could do:

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

But as others have said, this is not a good idea. It may be easier, but consider other options:

  • set the view variable in the controller
  • write a view helper that pulls the variable from the request object


If you need to access a GET parameter from a view, i think you're doing it the wrong way.

I suggest that you set up a route with all your parameters, and then use $this->url from your view to render a valid and correct url.

Fore som more info, check out the following blog post (no, i'm not the author): http://naneau.nl/2007/07/08/use-the-url-view-helper-please/

Edit:

If you want to be 'lazy', you can set a view parameter from your controller by doing $this->view->param = $this->_getParam('param'). You can then access param from your view by doing echo $this->param;. However, i do not recommend this.


To access the Request Object one way that is common is to save it in the Registry.

  1. http://osdir.com/ml/php.zend.framework.mvc/2007-08/msg00158.html
  2. http://www.zfforums.com/zend-framework-components-13/model-view-controller-mvc-21/how-access-request-object-customizing-layout-view-3349.html


You can pass it in from a controller: $this->view->page = $this->_getParam('page');.

Footnote: I agree with @alexn.


i am using Zend Framework v1.11 and i am doing like this

In Controller

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

then in View you can access any Request param like this

<h3><?= $this->request->fullname ?></h3>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜