ismaelsow ismaelsow - 4 months ago 10
PHP Question

How to retrieve an url parameter in the Zend Framework?

I'am trying to retrieve an parameter passed in a url using the zend framework. But of course, it is not working !
My code looks like this :

Generating the url :

<?php echo $this->url(array('controller' => 'poll', 'action' => 'showresults', 'poll_id' => $poll['_id']), null, true) ?>


Retrieving the "poll_id" parameter in showresultsAction() :

$request = new Zend_Controller_Request_Http();
$poll_id = $request->getParam('poll_id');


The problem is that $poll_id is NULL. When I do a var_dump of $request->getParams(), it is also NULL. I have glanced trough the Zend Framework doc, but it was not very usefull. Any idea ? Thanks !

Answer

Instead of:

$request = new Zend_Controller_Request_Http();
$poll_id = $request->getParam('poll_id');

Try:

$request = $this->getRequest(); //$this should refer to a controller
$poll_id = $request->getParam('poll_id');

Or:

$poll_id = $this->_getParam('poll_id'); //$this should refer to a controller

The Zend Framework automagically attaches the request object to a controller.