tags:

views:

374

answers:

2

In the Zend view helper, there is the function url() for outputting a URL based on the routing tables eg

$this->url(array('controller' => 'comments', 'action' => 'add')

How can I do the same thing in a controller? In particular I want to set the action URL for a Zend Form using controller/action syntax rather than a standard URL eg

$form = new Zend_Form;
$form->setMethod('post')->setAction( $this->url(array('controller' => 'comments', 'action' => 'add')) );
+1  A: 

Was able to answer my own question as it seems the following code does the trick:-

$form = new Zend_Form;
$form->setMethod('post')->setAction( $this->getHelper('url')->url(array('controller' => 'index', 'action' => 'add')) );
Mathew Attlee
+2  A: 

There is an action helper for this: Zend_Controller_Action_Helper_Url. Inside an action controller, you can access it using:

$this->_helper->url(array(...));

Alternatively, you can also use the view helper:

$this->view->url(...);
Ferdinand Beyer