2016-12-14 18 views
3

異なるデータベース/スキーマにアクセスするために複数の接続を作成する必要がありますか。私は1つのdbconnectionで使用します。データベース名をlaravel eloquentまたはdb builderに渡す方法はありますか?現在、生のphp私は別のスキーマを照会するために1つの接続を使用します。接続は()ので、同じように、私の名前の接続を設定するには:LARAVEL Eloquent query multiple schema

答えて

3

あなたのdatabase.phpファイルとは別の接続を作成して、あなたの雄弁なモデルに渡します。

'mysql1' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db1', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

// connection 2 
'mysql2' => [ 
    'driver' => 'mysql', 
    'host'  => env('DB_HOST', 'localhost'), 
    'database' => 'db2', 
    'username' => 'root', 
    'password' => '', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => false, 
], 

私はモデルUser.php iが追加されます私のモデルの内側にmysql1

という名前のMySQL接続を使用していると仮定:

protected $connection = 'mysql1'; 

私はmysql2 という名前のMySQL接続を使用する場合、私は意志use

protected $connection = 'mysql2'; 

ここで私は接続を静的にmodに設定していますels。

+0

ありがとうございました。ありがとうございました。 – Arav

+0

うれしかったです! –

1

は雄弁で、私はDBの使用あなたが知らなかった場合は、データベース接続が設定アプリ/設定/データベースで命名されている

 $query = DB::connection('db_connection_name')->table($this->table) 

.php

+0

ありがとうございました。 – Arav