我有一个错误控制器,我发送未处理的异常的电子邮件。我想输出一些驻留在“原始”控制器(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