我有一個錯誤控制器,我發送未處理的異常的電子郵件。我想輸出一些駐留在「原始」控制器(E.G indexController)中的變量值。Zend ErrorController訪問初始控制器變量
如何從ErrorController訪問這些值? E.G $indexController->attr
我有一個錯誤控制器,我發送未處理的異常的電子郵件。我想輸出一些駐留在「原始」控制器(E.G indexController)中的變量值。Zend ErrorController訪問初始控制器變量
如何從ErrorController訪問這些值? E.G $indexController->attr
那麼,您可以從錯誤控制器的視圖對象訪問原始控制器操作的視圖變量。您可以發送所需的值作爲視圖變量(如果可能的話),然後在您的錯誤控制器使用它們:
// In your original controller's action
$this->view->customVariable1 = 123;
$this->view->customVariable2 = 'abc';
// In your error controller's error action
$cv1 = $this->view->customVariable1;
$cv2 = $this->view->customVariable2;
我可以說這個工程,因爲我已經測試顯示我的error.phtml視圖變量,並顯示原始控制器的視圖變量。
現在,如果您需要更多控制權,您可以使用會話來存儲這些值。
我不認爲這是可能的,因爲原來的控制器對象在調度相應動作(Zend_Controller_Dispatcher_Standard,ZF 11.7的第314行)後被銷燬。但是,如果您在控制器內部捕獲了異常,則可以將所討論的變量推送到全局註冊表(例如Zend_Registry),然後重新引發異常以便被錯誤控制器捕獲;一旦錯誤控制器執行,它就可以從全局註冊表中訪問這些變量。
正是我所需要的 - 謝謝:) – 2011-06-09 08:02:09