Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel modifie les paramètres de la base de données au moment de l'exécution

J'ai résolu de cette façon :

La partie de config::set était erronée, pour accéder à la configuration de la base de données, je devrais utiliser le style point (.), de cette manière :

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));

Et puis reconnectez-vous à la BD :

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

Mon conseil pour tous ceux qui ont ce problème est d'utiliser une double connexion db, une pour la base de données principale (base de données du serveur) et une pour la base de données client. De cette façon, vous pouvez basculer vers les deux db, avec ce code simple :

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

Avec la première commande, vous pouvez choisir la base de données client et avec la seconde, vous pouvez vous y connecter.