はじめに-2つの接続
2つの接続が必要であると仮定します:デフォルト およびカスタマイズ 、config/database.php
で構成を指定します いつものように、あなたは必要です:
>>> 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"
その他の接続
上に、何をする必要があるかがわかります。あなたの場合は、接続全体の設定を入力するだけです。 必要な新しい接続ごとに、期待どおりに機能します:
>>> config(['database.connections.on_the_fly' => [
>>> 'database' => 'provided_on_the_fly',
>>> ...
>>> ]])
=> null
>>> DB::connection('on_the_fly')->getDatabaseName()
=> "provided_on_the_fly"
雄弁
Eloquentモデルにカスタム接続を使用する場合 SomeModel::on('on_the_fly')->find($id)
を使用できます (フェッチされたモデルインスタンス 以降のすべての操作に接続を使用します)