我們有一個插件,它有一個postDispatch掛鉤,用於在使用ZF1開發的CMS上記錄使用情況統計信息。生成其中一條記錄後,我們需要將其唯一ID發送給視圖,以便能夠通過AJAX請求進行更新。無法在Zend Framework中設置來自postDispatch()的視圖變量
幾個帖子提供了不同的方法來設置來自postDispatch函數的視圖變量,但他們都沒有爲我們工作。他們都在preDispatch麪糰上工作。方法1 this answer適用於preDispatch,但不適用於postDispatch。
$view = Zend_Controller_Front::getInstance()
->getParam('bootstrap')
->getResource('view');
$view->recordUID = XXXXXX
同爲method 2
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if (null === $viewRenderer->view) {
$viewRenderer->initView();
}
$view = $viewRenderer->view;
$view->recordUID = XXXXXX
另一個用戶建議其他地方(找不到現在參考)使用Zend's registry其還參與了preDispatch但不能在執行postDispatch
Zend_Registry::set('recordUID', 'XXXXXX');
它看起來在請求被分派後視圖對象丟失了。
- 該視圖中bootstrap.php中初始化的附加信息(required for method 1)
- 撐着在公共\的index.php
- 登記的,其登記統計方法運行使用執行postDispatch功能