2017-11-10 11 views
0

私のシステムは、アクセスしたいデータによって一貫して変更されるリモートデータベースに接続します。Laravel 5.5要求に応じてDB_HOSTを変更する方法

セットアップは複数の同じ構造のデータベースが異なるIPアドレスにあるため、別のデータベースにアクセスするたびに常に.env DB_HOST行を更新します。

私はシステム上でIPアドレスを受け入れ、使用する現在のデータベースとして設定するビューを作成する予定です。

+0

ここに*質問*は表示されません。 – ceejayoz

答えて

1

this answer on Laracastsを参照:

設定あなたの設定で2つのデータベース接続(あなたの変わらぬメイン接続、カスタムダイナミック接続するための他のいずれかの1):

'main' => array(
    'driver' => 'mysql', 
    'host'  => 'hostname', 
    'database' => 'database', 
    'username' => 'username', 
    'password' => 'password', 
    'prefix' => '', 
), 

'dynamic' => array(
    'driver' => 'mysql', 
    'host'  => '', 
    'database' => '', 
    'username' => '', 
    'password' => '', 
    'prefix' => '', 
), 

その後については、データベース接続パラメータを変更します必要に応じて第二の接続:

Config::set('database.connections.dynamic.host', $newHost); 
Config::set('database.connections.dynamic.username', $newUsername); 
Config::set('database.connections.dynamic.password', $newPassword); 
Config::set('database.connections.dynamic.database', $newDatabase); 
Config::set('database.default', 'dynamic'); 

して、データベースを再接続:

DB::reconnect('mysql'); 
+0

おかげでチャム!ちょうど私が必要としたもの – Roi

+0

hmmそれは現在のスクリプトの実行でのみ動作し、他のモデルに持ち越さない、私は各モデルに上記のコードを実行せずにすべてのモデルに反映できる何かを探していた – Roi

+0

@ローイこの応答は受け入れる必要があります – PrashanD

関連する問題