Как вызвать несколько действий контроллера из любого действия в ZF? - PullRequest
0 голосов
/ 06 августа 2010

У меня есть действие контроллера, и я хочу, чтобы оно выполнялось после любого действия.Я написал помощник действий с помощью этого метода:

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

Но похоже, что он застрял в цикле, что не так с моим кодом?

Ответы [ 3 ]

1 голос
/ 06 августа 2010

Вы можете использовать помощник действий ActionStack или просто поместить логику этого метода в postDispatch()

1 голос
/ 06 августа 2010

Вы можете создать плагин, например:

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');

    }
}

Поэтому поместите нужные действия в этот плагин, и эти действия будут выполнены в конце концов.

0 голосов
/ 06 августа 2010

Случается так, что postDispatch вызывается снова после отправки mycontroller-> myaction, поэтому он снова и снова вызывает mycontroller-> myaction.

...