Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel ändert Datenbankparameter zur Laufzeit

Ich löste auf diese Weise:

Der Teil von config::set war falsch, um auf die Datenbankkonfiguration zuzugreifen, sollte ich den Punktstil (.) auf diese Weise verwenden:

Config::set("database.connections.sqlsrv.host", Crypt::decrypt($cliente->Server));
Config::set("database.connections.sqlsrv.database", $cliente->NomeDB);
Config::set("database.connections.sqlsrv.username", Crypt::decrypt($cliente->Username));
Config::set("database.connections.sqlsrv.password", Crypt::decrypt($cliente->Password));

Und verbinden Sie sich dann erneut mit DB:

\Illuminate\Support\Facades\DB::reconnect();

Mein Rat für alle, die dieses Problem haben, ist, eine doppelte DB-Verbindung zu verwenden, eine für die Haupt-DB (Server-DB) und eine für die Kunden-DB. Auf diese Weise können Sie mit diesem einfachen Code zu beiden Datenbanken wechseln:

Config::set("database.default", "sqlsrvCustomer");
\Illuminate\Support\Facades\DB::reconnect();

Mit dem ersten Befehl können Sie die Kundendatenbank auswählen und mit dem zweiten können Sie sich mit ihr verbinden.