溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Laravel多租戶擴(kuò)展包multitenancy怎么用

發(fā)布時(shí)間:2022-10-11 09:15:34 來源:億速云 閱讀:124 作者:iii 欄目:編程語言

這篇文章主要介紹“Laravel多租戶擴(kuò)展包multitenancy怎么用”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Laravel多租戶擴(kuò)展包multitenancy怎么用”文章能幫助大家解決問題。

租戶模型

該擴(kuò)展的核心是: Tenant 模型,該模型用于租戶實(shí)例的創(chuàng)建,您可以通過該擴(kuò)展提供的一些遍歷方法快速使用和訪問當(dāng)前租戶。

use Spatie\Multitenancy\Models\Tenant;

// 獲取當(dāng)前租戶,不存在返回 null
Tenant::current()

// 通過容器的方式獲取當(dāng)前租戶
app('currentTenant');

// 確認(rèn)當(dāng)前是否有租戶
Tenant::checkCurrent()

// 將某個(gè)租戶設(shè)置為當(dāng)前租戶
$tenant->makeCurrent();

// 忘記當(dāng)前租戶
Tenant::forgetCurrent();

查詢租戶客戶

在安裝該擴(kuò)展之后,在數(shù)據(jù)庫中你會(huì)發(fā)現(xiàn) tenants 數(shù)據(jù)表,該表用于存儲(chǔ)租戶信息。該擴(kuò)展實(shí)現(xiàn)了一些便利的方法,包括通過域名來確定當(dāng)前租戶,其中 DomainTenantFinder 類,就是用于查詢并設(shè)置當(dāng)前租戶。當(dāng)然,你也可以配置自定義查詢方式,只要實(shí)現(xiàn) TenantFinder 抽象類即可。

在查找租戶時(shí)您可能還需要考慮一些必要判定。該擴(kuò)展提供了一些租戶判定的中間件,比如根據(jù)入?yún)泶_定并設(shè)置當(dāng)前所屬租戶的中間件 NeedsTenant,以及防止非當(dāng)前租戶的用戶訪問的 EnsureValidTenantSession 全局中間件。

Tenant-Aware 控制臺(tái)和隊(duì)列

多租戶系統(tǒng)還需要考慮的問題就是:控制臺(tái)命令和隊(duì)列范圍的界定。默認(rèn)情況下,隊(duì)列的執(zhí)行與否是不會(huì)會(huì)根據(jù)租戶來做區(qū)分的,該擴(kuò)展中,您可以通過配置 TenantAwareNotTenantAware 參數(shù)來實(shí)現(xiàn)特定租戶可以使用特定隊(duì)列的需求。

當(dāng)然,您也可以通過 tenants:artisan 命令來實(shí)現(xiàn)在特定租戶下執(zhí)行遷移的需求,案例如下:

# 所有租戶執(zhí)行遷移
php artisan tenants:artisan migrate

# 特定租戶執(zhí)行遷移
php artisan tenants:artisan "migrate --seed" --tenant=123

關(guān)于“Laravel多租戶擴(kuò)展包multitenancy怎么用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI