如何切换整个项目的数据库,如下例所示:
用户1使用数据库test1
用户2使用数据库test2
用户3使用数据库test3
如上所述......来自User的那些ID将来自默认数据库(登录页面)
PS:抱歉我的英文不好,我需要更多信息,请告诉我。
答案 0 :(得分:0)
在database.php中创建多个数据库配置
假设我们有默认,test1,test2,test3配置。
正如您所说的那样,用户数据是默认的db config,我认为您正在使用AUTH COMPONENT进行授权。
现在在AppController中添加以下功能
public function beforeFilter() { //call change db config function on user login and pass which config need to use if( $this->Auth->loggedIn() ) { //user login ///Some logic to select db config according login user. $dbConfig = "result of logic which return db config name"; $this->_userSpecificDbConfig($dbConfig); } } private function _userSpecificDbConfig($dbConfig) { //get model name $model = $this->name; //set db configuration for user switch($dbConfig) { case 'test1': $this->{$model}->useDbConfig = "test1"; break; case 'test2': $this->{$model}->useDbConfig = "test2"; break; case 'test3': $this->{$model}->useDbConfig = "test3"; break; default: $this->{$model}->useDbConfig = "default"; } }
试试这段代码。