2011-10-28 109 views
2

这用于工作,但经过其他程序员的一些修改后,它只是无法工作。我对我的引导验证码:Zend Framework:Multidb无法初始化

protected function _initDatabase() 
{ 
    $resource = $this->getPluginResource('multidb'); 
    $resource->init(); 

    Zend_Registry::set('gtap', $resource->getDb('gtap')); 
    Zend_Registry::set('phpbb', $resource->getDb('phpbb')); 
} 

一旦加载,这个错误显示出来:

Fatal error: Call to a member function init() on a non-object in /var/www/gamebowl3/application/Bootstrap.php on line 105

我的php.ini对TIS的include_path此项:

.:/usr/share/php:/etc/apache2/libraries 

和我可以看到multidb.php位于:

/etc/apache2/librarties/Zend/Application/Resource 

有人可以告诉我是什么原因导致了错误?谢谢!

+0

99%$资源为空,因为可能该方法不符合您的预期或其他任何工作...需要更多的代码。 –

+0

@JourourEstrella我正在为您投票。这是我能为你做的最多的事情:-) –

回答

1

我刚发现问题出在application.ini中。向通常的一组配置中添加了新引入的设置。这里是:

;Gtap Database 
resources.multidb.gtap.adapter  = "PDO_MYSQL" 
resources.multidb.gtap.host   = "localhost" 
resources.multidb.gtap.username  = "root" 
resources.multidb.gtap.password  = "letmein1" 
resources.multidb.gtap.dbname  = "gtap" 
resources.multidb.gtap.isDefaultTableAdapter = true 
resources.multidb.gtap.default = true 
;Forum Database 
resources.multidb.phpbb.adapter  = "PDO_MYSQL" 
resources.multidb.phpbb.host  = "localhost" 
resources.multidb.phpbb.username = "root" 
resources.multidb.phpbb.password = "letmein1" 
resources.multidb.phpbb.dbname  = "phpbb" 
resources.multidb.phpbb.isDefaultTableAdapter = false 

此外,请确保你有最新的Zend框架库,并将其添加到PHP的包含路径。这应该解决一切。