2011-06-08 23 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),然后重新引发异常以便被错误控制器捕获;一旦错误控制器执行,它就可以从全局注册表中访问这些变量。