In meinem database.php
, habe ich zwei Datenbanken konfiguriert.Laravel - Ändern der Standard-Datenbankverbindung global
'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',
),
standardmäßig So db1
wird als Standard DB zunächst eingestellt. Jetzt möchte ich die Standarddatenbank auf "db2" umstellen, indem ich eine Option aus dem Dropdown-Menü "Auswählen" auswähle. Dies wird einen Beitrag AJAX-Anforderung an den Controller-Methode tun, in dem ich
public function postChangeDb() {
$db = Input::get('db');
Config::set('database.default', $db);
}
tun Sobald dies erledigt ist, ich refresh "die Seite, aber die Verbindung ist immer noch auf‚DB1‘.
Ich habe auch versucht die folgende
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!
}
Und die oben funktioniert gut und es schaltet die Datenbank erfolgreich. Ist der Wechsel 'pro Anfrage' möglich?
yep . versucht. hat meine Frage auch bearbeitet. – ericbae
@ericbae Ich habe meine Antwort aktualisiert –