我正在构建一个具有多租户功能的Laravel站点。每个租户(我称之为"站点,"如同在物理位置,从此处开始)可以拥有多个用户,并且一些用户可以与多个站点相关联;因此,我的sites
和users
表之间存在多对多关系,并且需要中间site_user
表来处理关系。到目前为止一切都很好。
我还使用Entrust
来处理三类用户 - owner
,admin
和user
。理论上,每个用户应该具有每个站点的角色。这意味着用户1可能在网站A上具有admin
角色,但在网站B上只有user
角色。如果我按照Entrust docs,我被告知要附加role
到user
。但这对我不起作用,因为如果我将用户1与站点A和站点B关联起来并使他成为admin
,那么他将成为站点A 和站点的管理员B.从概念上讲,我觉得role
应该以某种方式附加到中间site_user
表,也许作为该表上的另一个字段,但我不确定我是如何检索到的领域。想到的另一种可能性是在该中间表和roles
表之间建立了多对多的关系,实际上创建了一个role_site_user
表,但我又不知道我是怎么做的#39; d实际上检索该信息。有没有人尝试过我所建议的并且有一个很好的方法为用户生成每个租户的角色和权限?