开发者

how to call multiple controller action from within any action in ZF?

开发者 https://www.devze.com 2023-01-10 23:45 出处:网络
I have a controller action and I want i开发者_运维百科t to be executed after any action. I have written an action helper with this method:

I have a controller action and I want i开发者_运维百科t to be executed after any action. I have written an action helper with this method:

public function postDispatch(){    
    $actionstack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack');
    $actionstack->direct('myaction', 'mycontroller');
}

But it seems that it stuck in a loop, what is wrong with my code?


You could create a Plugin, for example:

class Plugin_Sidebar extends Zend_Controller_Plugin_Abstract {

    public function postDispatch(Zend_Controller_Request_Abstract $request)
    {
        if($request->getModuleName() == 'admin')
        {
            return;
        }
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
        if (null === $viewRenderer->view) {
            $viewRenderer->initView();
        }
        $view = $viewRenderer->view;

        $yt = new Zend_Gdata_YouTube();
        $view->videos = $yt->getUserUploads('MysteryGuitarMan');

    }
}

So put the actions you want in this plugin and these aciotns will be executed after all.


You can either use the ActionStack action helper, or simply put the logic of that method in your postDispatch()


What happens is that the postDispatch is called again after mycontroller->myaction has been dispatched, so it calls mycontroller->myaction again and again.

0

精彩评论

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