Intro - 2 connexions
En supposant que vous ayez besoin de 2 connexions :par défaut et personnalisé , vous fourniriez leur configuration dans votre config/database.php
comme d'habitude, alors vous avez besoin de :
>>> DB::connection()->getDatabaseName()
=> "default"
>>> DB::connection('custom')->getDatabaseName()
=> "customized"
// change the config...
>>> config(['database.connections.custom.database' => 'new_customized_db'])
=> null
// ...but once the connection is already open, config change doesn't affect it...
>>> DB::connection('custom')->getDatabaseName()
=> "customized"
// ...so we need to get rid of existing connection completely (reconnect() won't work)
>>> DB::purge('custom')
=> null
>>> DB::connection('custom')->getDatabaseName()
=> "new_customized_db"
Plus de connexions
Ci-dessus, vous pouvez voir ce qui doit être fait. Dans votre cas, vous pouvez simplement mettre toute la configuration de connexion pour chaque nouvelle connexion dont vous avez besoin, et cela fonctionnera comme prévu :
>>> config(['database.connections.on_the_fly' => [
>>> 'database' => 'provided_on_the_fly',
>>> ...
>>> ]])
=> null
>>> DB::connection('on_the_fly')->getDatabaseName()
=> "provided_on_the_fly"
Éloquent
Si vous souhaitez utiliser une connexion personnalisée pour vos modèles Eloquent vous pouvez utiliser SomeModel::on('on_the_fly')->find($id)
(instance de modèle extraite utilisera la connexion pour toutes les opérations ultérieures)