Cakephp为整个项目切换数据库连接


Cakephp switch database connection for the entire project

如何为整个项目切换数据库,就像这个例子:

用户1使用数据库test1

用户2使用数据库test2

用户3使用数据库test3

就像上面这样…来自User的ID将来自默认数据库(登录页)

PS:对不起,我的英语不好,我需要更多的信息,请告诉我。

在database.php中创建多个数据库配置

假设我们有默认的test1, test2, test3配置。

正如你所说的用户数据在默认的数据库配置中,我认为你正在使用AUTH组件进行授权。

现在在AppController

中添加以下功能<>之前公共函数beforeFilter() {//在用户登录时调用change db config函数并传递需要使用的配置$this->Auth->loggedIn()) {//用户登录///根据登录用户选择db配置$dbConfig = "返回db配置名的逻辑结果";$ this -> _userSpecificDbConfig ($ dbConfig);}}private function _userSpecificDbConfig($dbConfig) {//获取模型名$model = $this->name;//为用户设置数据库配置开关(dbConfig美元){例"test1":$this->{$model}->useDbConfig = "test1";打破;例"test2":$this->{$model}->useDbConfig = "test2";打破;例"test3":$this->{$model}->useDbConfig = "test3";打破;默认值:$this->{$model}->useDbConfig = "default";}}之前