у меня проблемы с zend multidb. Мои адаптеры не переключаются, и каждый раз, когда я устанавливаю их по умолчанию, они используются. А также это не дает мне никакой ошибки. Ниже приведен код, который я использую для функции zend multidb.
Bootstrap.php
public function _initDB()
{
Zend_Registry::getInstance();
$this->bootstrap('multidb');
$multidb = $this->getPluginResource('multidb');
Zend_Registry::set('dbR', $multidb->getDb('dbR'));
Zend_Registry::set('dbW', $multidb->getDb('dbW'));
}
Приложение.ini
resources.multidb.dbR.adapter = "mysqli"
resources.multidb.dbR.host = "xxx.xxx.x.xx"
resources.multidb.dbR.username = "root"
resources.multidb.dbR.password = "admin"
resources.multidb.dbR.dbname = "test_app1"
resources.multidb.dbR.profiler = "false"
resources.multidb.dbR.isDefaultTableAdapter = "true"
resources.multidb.dbW.adapter = "mysqli"
resources.multidb.dbW.host = "xxx.xxx.x.xx"
resources.multidb.dbW.username = "root"
resources.multidb.dbW.password = "admin"
resources.multidb.dbW.dbname = "test_app2"
Теперь в моем классе модели я использую следующую строку кода, где я хочу выполнить любую операцию записи
class Abc_Model_ModelName extends Zend_Db_Table_Abstract
{
protected $_dbR;
protected $_dbW;
protected $_name = 'table_name';
public function init(){
$this->_dbR = Zend_Registry::get("dbR");
$this->_dbW = Zend_Registry::get("dbW");
}
public function addedit($data = array())
{
$this->setDefaultAdapter($this->_dbW);
}
}
может ли кто-нибудь помочь мне с этим?
$this->_dbw->getAdapter(); or ->getDb()
вы, вероятно, не хотите сбрасывать свой адаптер по умолчанию, но вы хотите получить экземпляр второго адаптера. Допускаю, что документация в данном случае нехорошая, так что я тоже не уверен. - person RockyFord   schedule 24.05.2012