仅使用config时,Zend默认适配器不可用

时间:2013-06-16 21:57:31

标签: zend-framework zend-db-table

我正在使用application.ini在Zend 1.12中引导数据库设置和适配器

resources.db.adapter = "PDO_MYSQL"
resources.db.params.host = "server"
resources.db.params.port = "3310"
resources.db.params.username = "user"
resources.db.params.password = "pass"
resources.db.params.dbname = "dbname"
resources.db.params.charset = "utf8"
resources.db.isDefaultTableAdapter = true

但是,我在脚本中找不到默认适配器:

$db = Zend_Db_Table::getDefaultAdapter();

这是空洞的结果。

我必须在Bootstrap中使用init mentod才能使其工作:

protected function _initDbTable() {

        $resource = $this->getPluginResource('db');
        $adapter = $resource->getDbAdapter();
        Zend_Db_Table::setDefaultAdapter($adapter);
    }

有没有办法在application.ini中设置所有内容?

1 个答案:

答案 0 :(得分:0)

你做得对。配置中的资源需要像您执行操作一样进行自举。 “::的Zend_Db_Table setDefaultAdapter($适配器);”因为那是“resources.db.isDefaultTableAdapter = true”的原因。

另见What is the "right" Way to Provide a Zend Application With a Database Handler