
多租户系统是那些需要在一套后端程序上同时维护多个客户的 web 开发者的福音。
Spatie 发布的一个 Laravel 的扩展 multitenancy ,该扩展主要帮助您快速搭建多租户系统:
laravel-multitenancy 扩展发布地址:t.co/q9HzfkNw7w该扩展理念是提供您实现多租户的基本要素。文档: t.co/zspuLyt3KN视频演示 (案例): t.co/i3QzTezcuY pic.twitter.com/cy2Fk4tIe6— Freek Van der Herten (@freekmurze) May 20, 2020
根据 Freek Van der Herten 的介绍文章:introductory post,可以了解到该扩展仅仅是提供用户实现多租户系统的基本要素。
你可以从该扩展获取以下便利:
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
判断当前是哪个租户。
租户配置的级联更改。
创建新租户数据库,并在租户间的数据迁移工具。
详细介绍以及使用方法请看具体文档:laravel-multitenancy documenation.
租户模型
该扩展的核心是: Tenant 模型,该模型用于租户实例的创建,您可以通过该扩展提供的一些遍历方法快速使用和访问当前租户。
use SpatieMultitenancyModelsTenant;// 获取当前租户,不存在返回 nullTenant::current()// 通过容器的方式获取当前租户app('currentTenant');// 确认当前是否有租户Tenant::checkCurrent()// 将某个租户设置为当前租户$tenant->makeCurrent();// 忘记当前租户Tenant::forgetCurrent();
查询租户客户
在安装该扩展之后,在数据库中你会发现 tenants 数据表,该表用于存储租户信息。该扩展实现了一些便利的方法,包括通过域名来确定当前租户,其中 DomainTenantFinder 类,就是用于查询并设置当前租户。当然,你也可以配置自定义查询方式,只要实现 TenantFinder 抽象类即可。
在查找租户时您可能还需要考虑一些必要判定。该扩展提供了一些租户判定的中间件,比如根据入参来确定并设置当前所属租户的中间件 NeedsTenant,以及防止非当前租户的用户访问的 EnsureValidTenantSession 全局中间件。
Tenant-Aware 控制台和队列
多租户系统还需要考虑的问题就是:控制台命令和队列范围的界定。默认情况下,队列的执行与否是不会会根据租户来做区分的,该扩展中,您可以通过配置 TenantAware 和 NotTenantAware 参数来实现特定租户可以使用特定队列的需求。
当然,您也可以通过 tenants:artisan 命令来实现在特定租户下执行迁移的需求,案例如下:
# 所有租户执行迁移php artisan tenants:artisan migrate# 特定租户执行迁移php artisan tenants:artisan "migrate --seed" --tenant=123
## 更多知识
关于扩展的使用以及安装,请阅读 spatie/laravel-multitenancy.
想要了解更多细节请阅读 Freek’s post。
原文地址:https://laravel-news.com/spatie-multitenancy-laravel
译文地址:https://learnku.com/laravel/t/45142
【相关推荐:laravel视频教程】
以上就是Laravel扩展推荐:多租户扩展包 “multitenancy”的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/68852.html
微信扫一扫
支付宝扫一扫