2012-10-28 22 views
5

Ho 2 controller, ContentController per l'utente generale e ManageController per l'amministratore. Ho bisogno di cambiare la connessione dal default per admin e ho questo codice nel mio database.phpCakephp Come modificare la connessione al database

class DATABASE_CONFIG { 

    public $default = array(
     'datasource' => 'Database/Mysql', 
     'persistent' => false, 
     'host' => 'localhost', 
     'login' => 'user', 
     'password' => '', 
     'database' => 'ComputerScience', 
     'prefix' => '', 
     'encoding' => 'utf8', 
    ); 

    public $admin = array(
     'datasource' => 'Database/Mysql', 
     'persistent' => false, 
     'host' => 'localhost', 
     'login' => 'admin', 
     'password' => '', 
     'database' => 'ComputerScience', 
     'prefix' => '', 
     'encoding' => 'utf8', 
    ); 
} 

Grazie

risposta

10

Quindi, all'interno del modello, si può usare l'attributo useDbConfig:

class Example extends AppModel { 
    public $useDbConfig = 'admin'; 
} 

Dentro il controller, utilizzare semplicemente:

$this->ModelName->useDbConfig = 'admin'; 

Questo è tutto.

6

Vorrei utilizzare Model::setDataSource() anziché impostare semplicemente il database config var. Questo è perché ci sono altri cambiamenti possibili che vengono con la modifica l'origine dati:

$this->Model->setDataSource('admin'); 
Problemi correlati