温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Laravel多租户扩展包multitenancy怎么用

发布时间:2022-10-11 09:15:34 来源:亿速云 阅读:124 作者:iii 栏目:编程语言

这篇文章主要介绍“Laravel多租户扩展包multitenancy怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Laravel多租户扩展包multitenancy怎么用”文章能帮助大家解决问题。

租户模型

该扩展的核心是: Tenant 模型,该模型用于租户实例的创建,您可以通过该扩展提供的一些遍历方法快速使用和访问当前租户。

use Spatie\Multitenancy\Models\Tenant;

// 获取当前租户,不存在返回 null
Tenant::current()

// 通过容器的方式获取当前租户
app('currentTenant');

// 确认当前是否有租户
Tenant::checkCurrent()

// 将某个租户设置为当前租户
$tenant->makeCurrent();

// 忘记当前租户
Tenant::forgetCurrent();

查询租户客户

在安装该扩展之后,在数据库中你会发现 tenants 数据表,该表用于存储租户信息。该扩展实现了一些便利的方法,包括通过域名来确定当前租户,其中 DomainTenantFinder 类,就是用于查询并设置当前租户。当然,你也可以配置自定义查询方式,只要实现 TenantFinder 抽象类即可。

在查找租户时您可能还需要考虑一些必要判定。该扩展提供了一些租户判定的中间件,比如根据入参来确定并设置当前所属租户的中间件 NeedsTenant,以及防止非当前租户的用户访问的 EnsureValidTenantSession 全局中间件。

Tenant-Aware 控制台和队列

多租户系统还需要考虑的问题就是:控制台命令和队列范围的界定。默认情况下,队列的执行与否是不会会根据租户来做区分的,该扩展中,您可以通过配置 TenantAwareNotTenantAware 参数来实现特定租户可以使用特定队列的需求。

当然,您也可以通过 tenants:artisan 命令来实现在特定租户下执行迁移的需求,案例如下:

# 所有租户执行迁移
php artisan tenants:artisan migrate

# 特定租户执行迁移
php artisan tenants:artisan "migrate --seed" --tenant=123

关于“Laravel多租户扩展包multitenancy怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI