Yii Framework Forum: [RESUELTO]:Conexion a varias BD en una misma aplicación - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[RESUELTO]:Conexion a varias BD en una misma aplicación Rate Topic: -----

#1 User is offline   jhoneider 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 11-November 09

Posted 05 January 2010 - 05:29 AM

Hola.

Me gustaría saber se alguien a hecho conexión a dos bases de datos en el mismo proyecto, mi caso consiste en que debo conectarme a una BD remota y a otra local, no estoy seguro como podría hacerse.

Muchas gracias.
0

#2 User is offline   Horacio Segura 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 533
  • Joined: 11-August 09
  • Location:Argentina

Posted 05 January 2010 - 05:46 AM

View Postjhoneider, on 05 January 2010 - 05:29 AM, said:

Hola.

Me gustaría saber se alguien a hecho conexión a dos bases de datos en el mismo proyecto, mi caso consiste en que debo conectarme a una BD remota y a otra local, no estoy seguro como podría hacerse.

Muchas gracias.


Puedes extender CActiveRecord
  class ECActiveRecord extends CActiveRecord

y luego haces que la funcion getDbConnection retorne tu base de datos
public function getDbConnection() {
// creo que por defecto retorna 'db' 
return 'otra';
}

y luego defines tu modelo

  class MiTabla extends ECActiveRecord {
...
}



'otra' debe estar definida en el config/main.php
KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
http://hmsegura.blogspot.com/
0

#3 User is offline   Horacio Segura 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 533
  • Joined: 11-August 09
  • Location:Argentina

Posted 05 January 2010 - 05:49 AM

aqui el codigo completo, en el anterior me falto bastante
class EActiveRecord extends CActiveRecord
{
public static $otra;


public function getDbConnection()

   {

      if(self::$otra!==null)

         return self::$otra;

      else

      {

         self::$otra=Yii::app()->otra;

         if(self::$otra instanceof CDbConnection)

         {

            self::$otra->setActive(true);

            return self::$otra;

         }

         else

            throw new CDbException(Yii::t('yii','Active Record requires a "db" CDbConnection application component.'));

      }

   }


}
?>

KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
http://hmsegura.blogspot.com/
0

#4 User is offline   jhoneider 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 23
  • Joined: 11-November 09

Posted 05 January 2010 - 06:51 AM

Hola Horacio, gracias por tu respuesta.

Me gustaría preguntarte algo mas, la clase que tu llamas ECActiveRecord donde pones el script de esta clase, es decir el codigo que me pasaste en tu segundo comentario.

Gracias.
0

#5 User is offline   Horacio Segura 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 533
  • Joined: 11-August 09
  • Location:Argentina

Posted 05 January 2010 - 07:01 AM

View Postjhoneider, on 05 January 2010 - 06:51 AM, said:

Hola Horacio, gracias por tu respuesta.

Me gustaría preguntarte algo mas, la clase que tu llamas ECActiveRecord donde pones el script de esta clase, es decir el codigo que me pasaste en tu segundo comentario.

Gracias.


lo puedes poner en la carpeta models

o en components y luego importarla en el config/main.php

...
'import'=>array(
...
        'application.components.*',
...


[edit]
o en extensions

yo la puse en models

This post has been edited by Horacio Segura: 05 January 2010 - 07:02 AM

KISS - Keep It Simple Stupid
ASAP-As Soon As Possible
http://www.yiiframew...oc/cookbook/71/
http://hmsegura.blogspot.com/
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users