W moim database.php
mam skonfigurowane DWIE bazy danych.Laravel - zmiana domyślnego połączenia z bazą danych na całym świecie
'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',
),
Więc domyślnie db1
jest ustawiony jako domyślny DB początkowo. Teraz chcę przełączyć domyślną bazę danych na "db2", wybierając opcję z rozwijanego menu "wybierz". Będzie to zrobić żądania POST AJAX do metody kontrolera, w którym robię
public function postChangeDb() {
$db = Input::get('db');
Config::set('database.default', $db);
}
Gdy to nastąpi, ja „” odświeżyć stronę, ale połączenie jest nadal w „db1”.
Próbowałem również następujące
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!
}
A powyżej działa dobrze i to z powodzeniem włącza bazę danych. Czy podstawą jest przełącznik "na żądanie"?
Tak . wypróbowany. zredagowałem też moje pytanie. – ericbae
@ericbae Zaktualizowałem moją odpowiedź –