私のdatabase.php
では、2 つのデータベースが構成されています。
'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!
}
上記は正常に機能し、データベースの切り替えに成功しました。スイッチは「リクエストごと」に基づいていますか?