2012-10-28 6 views
5

Mam 2 kontrolerów, ContentController dla ogólnego użytkownika i ManageController dla administratora. Muszę zmienić połączenie z domyślnie do administratora i mam ten kod w moim database.phpCakephp Jak zmienić połączenie z bazą danych

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', 
    ); 
} 

Dziękuję

Odpowiedz

10

Więc wewnątrz modelu, należy użyć atrybutu useDbConfig:

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

Wewnątrz kontrolera, wystarczy użyć:

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

to wszystko.

6

Użyłbym raczej Model::setDataSource() niż tylko ustawienie konfiguracji bazy danych var. Wynika to z innych możliwych zmian związanych ze zmianą źródła danych:

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