Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2011, 10:09
pur
 
Fecha de Ingreso: agosto-2007
Mensajes: 98
Antigüedad: 16 años, 8 meses
Puntos: 4
Trabajar con 2 bases de dato en ZF

Hola amigos, de vuelta por acá.
Estoy trabajando con una aplicación ZF y debo utilizar 2 bases de datos, estoy siguiendo el manual pero hay algo que no lo tengo claro, explico.

application.ini
Código PHP:
Ver original
  1. ;bases de datos
  2. resources.multidb.db1.adapter = "pdo_mysql"
  3. resources.multidb.db1.host = "localhost"
  4. resources.multidb.db1.username = "d"
  5. resources.multidb.db1.password = "f"
  6. resources.multidb.db1.dbname = "a"
  7.  
  8. resources.multidb.db2.adapter = "pdo_pgsql"
  9. resources.multidb.db2.host = "localhost"
  10. resources.multidb.db2.username = "d"
  11. resources.multidb.db2.password = "f"
  12. resources.multidb.db2.dbname = "b"
  13. resources.multidb.db2.default = true

En el bootstrap registro los adapters:
Código PHP:
Ver original
  1. protected function _initDbAdaptersToRegistry()
  2. {
  3.  
  4.     $this->bootstrap('multidb');
  5.     $resource = $this->getPluginResource('multidb');
  6.     $resource->init();
  7.  
  8.     $Adapter1 = $resource->getDb('db2');
  9.     $Adapter2 = $resource->getDb('db1');
  10.     Zend_Registry::set('Adapter1RegKey', $Adapter1);
  11.     Zend_Registry::set('Adapter2RegKey',$Adapter2);
  12.  
  13. }

Llamada del modelo en el controlador:
Código PHP:
Ver original
  1. $autos = Default_Model_Autos();
  2. $vertodos = $autos->vertodos();



el modelo:
Código PHP:
Ver original
  1. class Default_Model_Autos extends Zend_Db_Table_Abstract
  2. {
  3. protected $_name = 'autos';
  4. protected $_primary = 'id';
  5.  
  6. protected $_coneccion = Zend_Registry::get('Adapter2RegKey');
  7.  
  8. function vertodos(){
  9.  
  10.    $todos = $this->_coneccion->fetchAll();
  11.    return $todos;
  12.  
  13.         }
Si alguien puede ver donde está el error le agradezco.

PD:Me llamó la atención que no utilice Zend_Db::factory(... pero así está en el manual.