Step 1: Create your database connection in database.php
var $brandXConfig = array( 'driver' => 'postgres', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'brand_x', 'prefix' => '', //'encoding' => 'utf8', ); var $brandYConfig = array( 'driver' => 'postgres', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'brand_y', 'prefix' => '', //'encoding' => 'utf8', );
Step 2: Add this function to app_model.php
Class AppModel extends Model
{
     function changeDataSource($newSource)  {
          parent::setDataSource($newSource);
          parent::__construct();
     }
}
Step 3: Add this function to app_controller.php
Class AppController extends Controller
{
     function changeDbSource($database = 'default') {
          $db = ConnectionManager::getInstance();
          $connected = $db->getDataSource($database);
          if($connected->isConnected()) 
                return true;
          return false;
     }
}
Step 4: Add this to your model
function changeMyDb($brand)
{
     if($brand == 'brandX') {
          $this->changeDataSource('brandXConfig');
     }
     else if($brand == 'brandY') {
          $this->changeDataSource('brandYConfig');
     }
}
After doing this, you'd be able to change your database connection as needed.
 
 
No comments:
Post a Comment