Bootstrap
类中的以下函数用于在DB中添加log
以查找错误。现在我必须使用Flashmessenger和Redirector帮助程序将其重定向到Dashboard。但它会引发致命错误。
protected function _initDebug()
{
register_shutdown_function(function () {
if ($e = error_get_last()) {
Zend_Registry::get('logger')->emerg($e['message'] . " in " . $e['file'] . ' line ' . $e['line'], 'error');
$logsDbTable = new Application_Model_DbTable_Logs();
$id = $logsDbTable->getLastInsertId();
$message = sprintf(Zend_Registry::getInstance()->config->ticket_msg,$id,Zend_Registry::getInstance()->config->support_phone_number);
$this->_helper->FlashMessenger(array('error' => $message));
$this->_helper->_redirector->goToSimple('index', 'dashboard');
}
});
}
由于您尚未注册Zend_Controller_Action_HelperBroker,因此必须手动实例化助手。我还没检查过,但应该能用。
protected function _initDebug()
{
register_shutdown_function(function () {
if ($e = error_get_last()) {
Zend_Registry::get('logger')->emerg($e['message'] . " in " . $e['file'] . ' line ' . $e['line'], 'error');
$logsDbTable = new Application_Model_DbTable_Logs();
$id = $logsDbTable->getLastInsertId();
$message = sprintf(Zend_Registry::getInstance()->config->ticket_msg,$id,Zend_Registry::getInstance()->config->support_phone_number);
$fm = new Zend_Controller_Action_Helper_FlashMessenger();
$fm->addMessage(array('error' => $message));//$this->_helper->FlashMessenger(array('error' => $message));
$rd = new Zend_Controller_Action_Helper_Redirector();
$rd->goToSimple('index', 'dashboard');//$this->_helper->_redirector->goToSimple('index', 'dashboard');
}
});
}