Zend引导程序重定向



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

最新更新