配置
# 配置
该包是高度可配置的。 此页面涵盖了您可以在 config/tenancy.php
文件中配置的内容,但请注意,还有更多内容是可配置的。 有些东西可以通过扩展类(例如Tenant
模型)来改变,许多东西可以使用静态属性来改变。 这些东西通常会在文档的相应页面上提到,但不是每次都提到。 出于这个原因,不要害怕深入研究包的源代码——只要您使用的类具有公共静态属性public static
,就应该对其进行配置。
# 静态属性
你可以像这样设置静态属性(例子):
\Stancl\Tenancy\Middleware\InitializeTenancyByDomain::$onFail = function () {
return redirect('https://my-central-domain.com/');
};
放置这些调用的一个合适的地方是你的 app/Providers/TenancyServiceProvider
的 boot()
方法.
# 租户模型
tenancy.tenant_model
这个配置指定了软件包应该使用什么 "租户 "模型(model)。你很有可能使用一个自定义的模型,正如租户页面所指示的那样,所以一定要在配置中定义它。
# 唯一ID生成器
tenancy.id_generator
Stancl\Tenancy\Database\Concerns\GeneratesIds
特性应用于默认的“租户”模型,如果没有提供租户 ID,将生成一个唯一 ID(默认为 uuid)。
如果你希望使用自动递增的id而不是uuids:
- 将此配置键设置为null,或者创建一个不使用这个特征的自定义租户模型
- 更新
tenants
表的迁移,使用递增列类型而不是string
。
# 域名模型
tenancy.domain_model
类似于租户模型的配置。如果你正在使用一个自定义的域名模型,在这个配置中改变它。如果你根本不使用域名(例如,如果你使用路径或请求数据识别),那可以完全忽略这个配置键。
# 中心域名
tenancy.central_domains
托管你的saas应用程序的域名列表。这是由(除其他事项外)使用的:
PreventAccessFromCentralDomains
中间件,防止从中心域名访问租户路由,InitializeTenancyBySubdomain
中间件,用于检查当前主机名是否是您的中央域名之一的子域名。
# 引导程序
tenancy.bootstrappers
此配置数组可让您启用、禁用或添加自己的 租户引导程序(tenancy bootstrappers)。
# 数据库
tenancy.database.*
本节与多数据库租赁相关,特别是与DatabaseTenancyBootstrapper
和管理租户数据库的逻辑有关。
请参阅配置中的这一部分,它带有注释。
# 缓存
tenancy.cache.*
本节与缓存分离有关,特别是与CacheTenancyBootstrapper
有关。
注意:要使用缓存分离,你需要使用一个支持标签的缓存存储,通常是Redis。
请看配置中的这一节,它是用注释记录的。
# 文件系统
tenancy.filesystem.*
本节与存储分离有关,特别是与 "FilesystemTenancyBootstrapper "有关。
请看配置中的这一节,它是用注释记录的。
# Redis
tenancy.redis.*
本节与Redis数据分离有关,特别是与 "RedisTenancyBootstrapper "有关。
注意:要使用这个引导器,你需要phpredis。
请看配置中的这一节,它是用注释记录的。
# 特点
tenancy.features
这个配置数组可以让你启用、禁用或添加你自己的功能类。
# 迁移参数
tenancy.migration_parameters
这个配置数组可以让你设置在运行tenants:migrate
命令时(或者使用MigrateDatabase
作业执行该命令时)默认使用的参数。当然,所有这些参数都可以通过在命令调用中直接传递来覆盖,无论是在CLI还是使用Artisan::call()
。
# 填充参数
tenancy.seeder_parameters
与迁移参数相同,但适用于 tenants:seed
和 SeedDatabase
的工作。