0

コントローラアクションがあり、アクションの後に実行したい。私はこのメソッドでアクションヘルパーを書きました:

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

しかし、それはループでスタックしているようです、私のコードの何が問題になっていますか?

4

3 に答える 3

1

アクションヘルパーを使用するかActionStack、単にそのメソッドのロジックをpostDispatch()

于 2010-08-06T13:20:32.200 に答える
1

たとえば、次のようにプラグインを作成できます。

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

    }
}

したがって、必要なアクションをこのプラグインに入れると、これらのアクションが最終的に実行されます。

于 2010-08-06T17:42:14.280 に答える
0

mycontroller->myaction がディスパッチされた後に postDispatch が再度呼び出されるため、mycontroller->myaction が何度も呼び出されます。

于 2010-08-06T11:20:29.573 に答える