在我的database.php
中,我配置了兩個數據庫。Laravel - 更改全局默認數據庫連接
'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
被初始設置爲默認DB。現在我想通過從'select'下拉菜單中選擇一個選項來將默認數據庫切換到'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!
}
和上面的正常工作併成功切換數據庫。交換機是「每個請求」的基礎嗎?
沒錯。試過。我也編輯了我的問題。 – ericbae
@ericbae我已經更新了我的回答 –