如何在Laravel 5中通过动态更改数据库来获取资源记录


How to fetch resource records by dynamically changing DBs in Laravel 5?

因此,每当我需要为主超级管理员获取租户信息时,我将租户数据库值设置为要查询的值,如下所示:

'Config::set('database.connections.tenants.database', $tenant->username);

我可以这样做:

$users = User::on('tenant')->find(1);

但这……

$users = User::on('tenant')->all();

…给我一个错误

调用未定义方法Illuminate'Database'Query'Builder::all()

如何从租户的数据库中获取所有用户?

编辑

public function showUsersForTenant($id)
{
    $tenant = Tenant::findOrFail($id);
    'Config::set('database.connections.tenants.database', $tenant->username);
    'DB::reconnect();
    'DB::setDatabaseName($tenant->username);
    $users = User::on('tenant')->get();
    return response()->json($users, 200);
}

当使用on时,应该使用get而不是all:

$users = User::on('tenant')->get()

实际上,all方法在内部调用get