kwalit / multi-tenant
一个简单轻量级的Laravel多租户应用程序构建包。
Requires
- php: >=5.5.9
This package is not auto-updated.
Last update: 2024-09-14 19:09:29 UTC
README
一个简单轻量级的Laravel多租户应用程序构建包。
安装
此包依赖composer作为依赖管理器。运行composer require kwalit/multi-tenant
安装此包。然后,在config/app.php
中添加服务提供者以进行引导:Kwalit\MultiTenant\MultiTenantServiceProvider::class
。
定义租户
租户在config/tenant.php
中定义。确保运行php artisan vendor:publish
命令以创建此文件。默认情况下,租户目录位于storage/tenants/{tenantID}
。如果您想使用不同的基本路径,则覆盖path
数组键。
return [
'path' => storage_path('tenants'),
'hosts' => [
'mysite.com' => [
'id' => 'mysite',
'name' => 'MySite',
'https' => true,
],
'anothersite.com' => [
'id' => 'anothersite',
'name' => 'AnotherSite',
'https' => false,
'foo' => 'bar',
]
]
]
在某些情况下,您可能想要添加自定义的租户特定参数,例如API密钥。只需使用辅助函数检索租户特定的键值即可:tenant('foo')
。
Eloquent模型
为了让您的模型处理多个连接,只需扩展TenantModel
类或实现HasTenancy
特性。这两个类做的是完全相同的事情。选择您喜欢的做法。
迁移和播种
每个租户都有自己的数据库,您可能需要不时地进行迁移和播种。在config/database.php
中定义租户连接,并简单地将--database
参数添加到 artisan,以指定要选择哪个数据库,例如
php artisan migrate:refresh --database {tenantConnection} --seed
管理资产
每个租户都有自己的资产,默认情况下存储在storage/tenants/{tenantID}/assets
。使用辅助函数tasset('foo.svg')
检索租户资产。此函数将使用路由asset/{path}
检索公共目录外的资产。