2013-07-10 47 views
0

下面這個函數在Bootstrap類中用於在DB中添加log以用於errors.Now我必須使用Flashmessenger和Redirector helpers將它重定向到Dashboard。但它會引發致命錯誤。Zend引導重定向

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');    
     } 
    }); 
} 
+0

是$ this - > _ helper可用於引導類嗎?你註冊了Zend_Controller_Action_HelperBroker嗎? –

+0

不,我還沒有註冊@ARIFMAHMUDRANA –

回答

1

由於您尚未註冊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');    
     } 
    }); 
} 
+0

感謝您的幫助Arif –