2012-10-28 149 views
5

我有2個控制器,一般用戶的ContentController和管理員的ManageController。我需要改變從默認的管理員連接,我有這樣的代碼在我的database.php中Cakephp如何更改數據庫連接

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

謝謝

回答

10

所以,你的模型中,你可以使用useDbConfig屬性:

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

你的內置控制器,只需使用:

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

這就是所有。

6

我會使用Model::setDataSource()而不是僅僅設置數據庫配置變種。這是因爲在更改數據源時還有其他可能的更改:

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