如何在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();

...给我一个错误

Call to undefined method 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