kwalit/multi-tenant

一个简单轻量级的Laravel多租户应用程序构建包。

v1.0 2016-05-13 12:19 UTC

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}检索公共目录外的资产。