那么你应该注意到有一个类 ConnectionManager 处理模型和数据库之间的链接。此类使用 config/database.php 文件的 DATABASE_CONFIG 类中提供的数据。
我会说一个不错的选择是在建立连接之前读取会话。例如在 DATABASE_CONFIG 的 __construct 上。就像是:
class DATABASE_CONFIG {
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => 'password',
'database' => 'database',
'prefix' => '',
//'encoding' => 'utf8',
);
public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
//'encoding' => 'utf8',
);
public __construct(){
App::uses('CakeSession');
$database = CakeSession::read('Auth.User.database');
if ($database){
$this->default['database'] = $database;
}
}
}