0

これは、エラー用に DBBootstrapに追加するためのクラス内の関数logです。Flashmessenger と Redirector ヘルパーを使用してダッシュボードにリダイレクトする必要がありますが、致命的なエラーがスローされます。

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

1 に答える 1

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');              
        }
    });
}
于 2013-07-10T09:44:14.287 に答える