Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai suivi l'excellent article de Jeroen Keppens, pour mettre en place une connexion multidb sur mon site.
Mais mon second adapter, le remote, n'est absolument pas chargé...
Zend va chercher ma table distante dans mon serveur mysql local (qui est mon local adapter), au lieu d'essayer de se connecter à mon serveur distant, sur le même réseau que ma machine de dev.
Je me creuse la tête, mais ne comprends pas ce qui ne va pas.
Voici mon application.ini:
; Databases : resources.multidb.local.adapter = "pdo_mysql" resources.multidb.local.host = "localhost" resources.multidb.local.username = "root" resources.multidb.local.password = "" resources.multidb.local.dbname = "bdd_local" resources.multidb.local.default = true resources.multidb.remote.adapter = "pdo_mysql" resources.multidb.remote.host = "192.168.0.200" resources.multidb.remote.username = "root" resources.multidb.remote.password = "********" resources.multidb.remote.dbname = "bdd_distant" resources.multidb.remote.default = false
Mon Bootstrap :
[lang=php]/** * Add databases to the registry * * @return void */ public function _initDatabaseRegistry(){ $this->bootstrap('multidb'); $multidb = $this->getPluginResource('multidb'); Zend_Registry::set('db', $multidb->getDb('local')); Zend_Registry::set('db_remote', $multidb->getDb('remote')); }
Et ma table qui est sur mon serveur distant :
[lang=php]class App_Model_DbTables_Myjag_MyjagMarquesTable extends Zend_Db_Table_Abstract{ # DECLARE VARS> protected $_name = 'marques'; protected $_schema = 'myjag'; protected $_adapter = 'db2'; protected $_primary = 'ID_MARQUE'; protected $_rowClass = 'App_Model_DbTables_Myjag_MyjagMarquesRow'; # <DECLARE VARS
Vraiment, je ne vois pas...
Help please
Dernière modification par delorbe (13-05-2012 21:02:10)
Hors ligne
Ok, après plusieurs jours de recherches, j'ai trouvé la réponse ici. Le monde est petit
Je ne comprends pas pourquoi, mais la classe Zend_Db_Table_Abstract ne supporte actuellement pas le multidb.
Il faut lui ajouter :
[lang=php]$this->_db = Zend_Registry::get($this->_adapter);
Maintenant ça fonctionne
Hors ligne
Pages: 1