在我的database.php
中,我配置了两个数据库。
'db1' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'db1',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'db2' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'db2',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
所以默认db1
情况下最初设置为默认数据库。现在我想通过从“选择”下拉列表中选择一个选项来将默认数据库切换为“db2”。这将对我执行的控制器方法执行发布 AJAX 请求
public function postChangeDb() {
$db = Input::get('db');
Config::set('database.default', $db);
}
完成后,我“刷新”页面,但连接仍位于“db1”。
我还尝试了以下
public function getTest() {
Config::set('database.default', 'db1');
$users = User::all();
echo sizeof($users); // returns 20
Config::set(database.default', 'db2');
$users = User::all();
echo sizeof($users); // returns 50 - which is correct!
}
以上工作正常,并成功切换数据库。开关是“每个请求”的基础吗?