您好,登錄后才能下訂單哦!
這篇文章主要介紹“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
全局中間件。
多租戶系統(tǒng)還需要考慮的問題就是:控制臺(tái)命令和隊(duì)列范圍的界定。默認(rèn)情況下,隊(duì)列的執(zhí)行與否是不會(huì)會(huì)根據(jù)租戶來做區(qū)分的,該擴(kuò)展中,您可以通過配置 TenantAware
和 NotTenantAware
參數(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)。
免責(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)容。