Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Zend Framework - How to call controller's redirect() from within an action helper

I am doing an ACL check in the preDispatch method of an Action Helper. When it fails, I want to call the action controller's _redirect method however I am having difficulty doing this.

In the comments attached to this post, zend-framework, call an action helper from within another action helper, I see two solutions. In the first, the controller is accessed from the helper as $this->_actionController. In the second, it is accessed using $this->getActionController().

I tried both of the following:

$this->_actionController->_redirect('/');
$this->getActionController()->_redirect('/');

In either case I get 'Method "_redirect" does not exist ...'. Are there perhaps restrictions on which controller methods can be accessed from the action helper?

like image 301
DatsunBing Avatar asked Apr 04 '11 02:04

DatsunBing


1 Answers

There is Redirector action helper that you could use in your action helpers. For example:

class My_Controller_Action_Helper_Test extends Zend_Controller_Action_Helper_Abstract {

     public function preDispatch()  {
        $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector');         
        $redirector->gotoUrl('/url');
    }            
}

Controller's _redirect method is just a wrapper to the Redirector's gotoUrl method.

like image 178
Marcin Avatar answered Sep 20 '22 10:09

Marcin