Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel中拥有一个多租户数据库,其中每个租户都有多个用户?_Php_Mysql_Laravel_Multi Tenant_Laravel 5.1 - Fatal编程技术网

Php 如何在laravel中拥有一个多租户数据库,其中每个租户都有多个用户?

Php 如何在laravel中拥有一个多租户数据库,其中每个租户都有多个用户?,php,mysql,laravel,multi-tenant,laravel-5.1,Php,Mysql,Laravel,Multi Tenant,Laravel 5.1,因此,我试图理解多租户数据库方法是如何工作的,但在某些地方我感到困惑。我正在尝试在Laravel和MySQL中使用它 我知道我可以为我的应用程序中的每个租户创建一个数据库,因此当用户登录时,我可以检查它是哪个租户,并更改数据库连接以使用他们的数据库。我猜这就是它的工作原理 但现在我开始感到困惑了。登录到应用程序的租户将能够创建用户并为他们分配角色,这意味着有一个超级管理员创建所有租户,但也有一个特定租户的超级管理员为租户本身的实例创建用户 那么,在这种情况下,我将如何对用户进行身份验证呢。例如,

因此,我试图理解多租户数据库方法是如何工作的,但在某些地方我感到困惑。我正在尝试在Laravel和MySQL中使用它

我知道我可以为我的应用程序中的每个租户创建一个数据库,因此当用户登录时,我可以检查它是哪个租户,并更改数据库连接以使用他们的数据库。我猜这就是它的工作原理

但现在我开始感到困惑了。登录到应用程序的租户将能够创建用户并为他们分配角色,这意味着有一个超级管理员创建所有租户,但也有一个特定租户的超级管理员为租户本身的实例创建用户

那么,在这种情况下,我将如何对用户进行身份验证呢。例如,我可以对租户进行身份验证,然后将DB连接更改为相应的数据库,但随后我必须登录该特定租户的用户,如何在会话中同时登录两个enities

我猜一个多身份验证包(比如)可能有助于实现这一点,但因为我是新手,所以我基本上是模糊不清的


我希望有人已经遇到了这个问题,可能能够帮助我。

首先,我假设您有充分的理由拥有多个数据库,而不仅仅是允许所有用户都住在同一个表中。通常情况下,这是因为您有一个数据量特别大的应用程序、安全情况,或者您只是希望能够在应用程序(如CRM)中轻松地分离出客户机数据

其次,如果我使用多个数据库,我仍然会依赖Laravel来控制对数据库的访问。Laravel可以在其所有查询中使用管理级别的凭据,但在应用程序中,您可以使用Laravel的身份验证层来控制对特定路由和操作的访问