Laravel Eloquent |在同一连接中更改数据库名称

时间:2017-01-24 22:26:43

标签: php database laravel eloquent

我想知道是否可以在同一连接中更改数据库名称

原因是我正在处理一个报告,该报告需要遍历同一连接(主机,用户,传递)中的所有数据库(超过100个)。

目前我只是在查询中的每个表名之前手动添加数据库名称。像:

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

我使用“更改数据库名称”或“切换数据库...”在Google上进行了一些搜索,但其中大多数是关于在config/database.php中创建不同的连接数组,但这不是我的情况(超过100个数据库) )

由于

2 个答案:

答案 0 :(得分:0)

如何在表格选择中定义数据库?

class Book extends Model {

    protected $table = 'database1.books'

}

class Book2 extends Model {

    protected $table = 'database2.books'

}

答案 1 :(得分:0)

由于您只是更改数据库名称,因此请创建一个包含所有数据库名称的数组。然后使用查询构建器,您可以在循环中执行

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

我认为这会让你走上正轨。 E.g:

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

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