Laravel 子域多租户包
发布时间:作者: Paul Redmond
Romega Digital 发布了一个包,可以更轻松地在 Laravel 应用程序中创建基于子域的多租户。
此包旨在为您的 Laravel 应用程序快速简便地添加多租户功能。它只是为租户和模型创建模型和关系。该包通过子域识别传入流量,并在租户表中找到相应的租户。如果未找到租户或用户未与特定子域关联,则用户会收到 403 错误。
Remega 的包通过名为 HasTenants
的特征为您的模型提供多租户支持,并且还利用 Spatie 的权限包来实现某些功能。
以下是来自 自述文件 的示例
use Spatie\Permission\Traits\HasRoles;use RomegaDigital\Multitenancy\Traits\HasTenants;use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable{ use HasTenants, HasRoles; // ...}
有了 HasTenants
特征,您可以获取与租户模型关联的用户
User::tenants()->get()
最后,以下是如何创建租户
Tenant::createMany([ [ 'name' => 'An Identifying Name', 'domain' => 'tenant1' ], [ 'name' => 'A Second Customer', 'domain' => 'tenant2' ]]);
除了这个包之外,还有一个名为 Multitenancy Nova Tool 的配套 Nova 包,用于管理应用程序中的多租户功能。
要详细了解此多租户包,您可以在 GitHub 上查看源代码:romegadigital/Multitenancy。要了解如何安装和使用该包,请查看 多租户自述文件。