首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单个数据库中使用spatie / laravel-multitenancy?

如何在单个数据库中使用spatie / laravel-multitenancy?
EN

Stack Overflow用户
提问于 2021-07-20 17:18:46
回答 1查看 564关注 0票数 0

我想要将现有的应用程序转换为多租户,并且不想使用多个数据库。只要读一读给定的包就可以了。

https://github.com/spatie/laravel-multitenancy

但是下一步呢??

假设现在用户正在存储到用户的表中,通过使用这个包,我希望存储特定于租户的用户。

我在任何地方都没有找到真正的例子。因此,如果有人已经使用单一数据库实现了Spatie多租户,请在这里帮助我。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-07-23 00:25:47

尽管spatie/laravel-multitenancy支持单个数据库,但它并没有提供查询作用域(而且似乎没有添加它们的计划,您可以在这里看到:https://github.com/spatie/laravel-multitenancy/issues/124),因此您需要手动创建它们。

因此,您需要:

  • 将tenant_id添加到特定于租户的表
  • 添加观察者以保存在表中创建新寄存器时的tenant_id
  • 添加全局查询范围以始终使用当前租户id

过滤数据

你可以在这个视频中看到类似的东西:https://www.youtube.com/watch?v=nCiNqboYFVQ

不同之处在于,您将使用spatie/laravel-multitenancy返回的当前租户,而不是登录的用户id来获取租户数据。

如果您想要一个已经提供了可供使用的查询范围的包,您可以尝试使用Laravel:https://tenancyforlaravel.com/docs/v3/single-database-tenancy的租户

或者,如果您的应用程序有一个非常简单的多租户策略(例如,租户是登录的用户或他的团队),您可以只创建一些查询范围,而不需要使用包,正如上面的视频所教的那样,因为通过user_id或team_id识别租户要简单得多,甚至在终端命令和队列作业中也是如此(但似乎不是您的情况,因为您需要用户属于一个租户)。

我希望它能帮助你为你的项目选择正确的包和策略。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68452410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档