如何通过动态更改Laravel 5中的DB来获取资源记录?

时间:2015-10-07 11:48:40

标签: php laravel laravel-5 multi-tenant

因此,每当我需要获取主superadmin的租户信息时,我将租户数据库值设置为要查询的值:

\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);
}

1 个答案:

答案 0 :(得分:2)

使用on时,您应使用get代替all

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

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