exception - Zend : Accessing model from Bootstrap raises an exception

标签 exception zend-framework model bootstrapping

这是我在 Bootstrap 中的代码:

public function _initRegistry()
{
    $systemConfigModel = new Application_Model_DbTable_SystemConfig();
    Zend_Registry::set('config', $systemConfigModel->getSystemConfig());
}

这是我得到的一个异常(exception):

( ! ) Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No adapter found for Application_Model_DbTable_SystemConfig' in /usr/share/php5/Zend/Db/Table/Abstract.php on line 755
( ! ) Zend_Db_Table_Exception: No adapter found for Application_Model_DbTable_SystemConfig in /usr/share/php5/Zend/Db/Table/Abstract.php on line 755

如果我在 BaseController 中调用它,它就可以正常工作。看起来我在 application.ini 中指定的 PDO 适配器在执行 Bootstrap 时尚未初始化(奇怪?)。我应该怎么做才能使代码在 Bootstrap 中工作?是否需要用 Zend_Db_Table::setDefaultAdapter(); 创建和设置适配器?

我问是因为如果代码不在 Bootstrap 中,则需要在两个不同的地方复制它,而且它看起来也属于 Bootstrap。

最佳答案

您是对的,在引导期间,您的数据库的 Zend 应用程序资源尚未初始化。

尝试如下更改引导方法,以便显式引导 db 资源。

public function _initRegistry()
{
    $this->bootstrap('db'); // Bootstrap the db resource from configuration

    $db = $this->getResource('db'); // get the db object here, if necessary

    // now that you have initialized the db resource, you can use your dbtable object
    $systemConfigModel = new Application_Model_DbTable_SystemConfig();
    Zend_Registry::set('config', $systemConfigModel->getSystemConfig());
}

关于exception - Zend : Accessing model from Bootstrap raises an exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202077/

相关文章:

WPF 对 Automation Peer API 的递归调用无效

ios - 如何让 CoreAnimation 在动画过程中不忽略异常?

php - Zend_Db_Table 加入查询 vs 数据库 View

ruby-on-rails - ruby rails : Calling an instance method from another model

python - 为什么 exc_traceback 返回 None

python - 捕获 SQLAlchemy 异常

php - 如何知道 twilio 通话状态(完成与否)

php - pcntl_fork 和 MySQL 连接消失了

ruby-on-rails - Rails在类方法上返回错误

python - 为什么 Django get_or_create 会导致这个 IntegrityError?