2017-01-24 16 views
0

Im同じデータベース内のデータベース名を変更することは可能でしょうかLaravel Eloquent |同じ接続内でデータベース名を変更する

私は、同じ接続(ホスト、ユーザー、パス)内のすべてのデータベース(100以上)をループする必要があるレポートに取り組んでいるからです。

現在、クエリ内の各テーブル名の前に手動でデータベース名を追加するだけです。同様に:

"SELECT * FROM `database_a`.`users` WHERE ...";

私は「...スイッチデータベース」「変更データベース名」またはでGoogleでいくつかの検索をしたが、それらのほとんどはあるconfig/database.phpに異なる接続配列の作成についてではなく、私の場合(とのthats 100以上のデータベース)

ありがとう

+0

どのような種類のデータベースですか? – jbrahy

答えて

0

データベース名を変更するだけなので、すべてのデータベース名で配列を作成してください。次に、クエリビルダを使用してループ内で行うことができます

DB::table($databasesArray[0].'.table_name')->where(...) 

これは正しい軌道に乗ると思います。 例:

$databases = ['db1','db2']; 

foreach($databases as $db) { 
    $users [] = DB::table($db.'.users')->where('status', 'active')->get(); 
} 
// $users = all users from all Databases 
+0

) –

0

テーブル選択でデータベースを定義するのはどうですか?

class Book extends Model { 

    protected $table = 'database1.books' 

} 

class Book2 extends Model { 

    protected $table = 'database2.books' 

} 
+0

私は手動でデータベース名の配列を構築する必要があるので、私はそれが良いアプローチだと思っていません。(( –

関連する問題