2011-06-08 26 views

回答

1

那麼,您可以從錯誤控制器的視圖對象訪問原始控制器操作的視圖變量。您可以發送所需的值作爲視圖變量(如果可能的話),然後在您的錯誤控制器使用它們:

// 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視圖變量,並顯示原始控制器的視圖變量。

現在,如果您需要更多控制權,您可以使用會話來存儲這些值。

+0

正是我所需要的 - 謝謝:) – 2011-06-09 08:02:09

0

我不認爲這是可能的,因爲原來的控制器對象在調度相應動作(Zend_Controller_Dispatcher_Standard,ZF 11.7的第314行)後被銷燬。但是,如果您在控制器內部捕獲了異常,則可以將所討論的變量推送到全局註冊表(例如Zend_Registry),然後重新引發異常以便被錯誤控制器捕獲;一旦錯誤控制器執行,它就可以從全局註冊表中訪問這些變量。