L'erreur est due au fait qu'il vous manque le driver
dans votre configuration.
Une meilleure façon de changer la connexion serait d'enregistrer votre nouvelle connexion dans le fichier de configuration de la base de données et de modifier la connexion au moment de l'exécution.
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
'newConnection' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'db2',
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
]
Vous pouvez maintenant modifier votre connexion en utilisant le nom que vous avez utilisé pour définir votre nouvelle connexion.
Changer la connexion par défaut
Config::set('database.default', 'newConnection');
DB::reconnect('newConnection');
ou modifier la connexion pour un générateur de requête
DB::connection('newConnection')->table('articles')->insert($articles);
ou si vous utilisez des modèles Eloquent, vous pouvez définir la connexion par défaut associée au modèle à l'aide de la connection
propriété
protected $connection = 'newConnection';
ou modifier au moment de l'exécution en appelant setConnection
(new User)->setConnection('newConnection');
Si vous souhaitez modifier les détails de connexion actuels, vous pouvez les modifier comme vous le souhaitez
Config::set('database.connections.mysql.database', 'db2');
et après les changements, vous devez appeler
DB::reconnect('mysql');
ou
DB::purge('mysql');