marciojcoelho / multi-tenant
一个简单轻量级的Laravel多租户应用构建包。
1.3.7
2017-02-16 10:08 UTC
Requires
- php: >=5.5.9
- marciojcoelho/multi-tenant: ^1.2
README
一个简单轻量级的Laravel多租户应用构建包。
安装
此包依赖于composer作为依赖管理器。运行composer require marciojcoelho/multi-tenant
来安装此包。接下来,在config/app.php
中添加服务提供者:Mjc\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
中定义租户连接,然后简单地向artisan添加--database
参数来指定要选择的数据库,例如
php artisan migrate:refresh --database {tenantConnection} --seed
管理资产
每个租户都有自己的资产,默认情况下存储在storage/tenants/{tenantID}/assets
。使用辅助函数tasset('foo.svg')
检索租户资产。此函数将使用路由asset/{path}
检索位于公共目录之外的资产。