我是 Laravel 5.1 的新手,目前我正在做一个项目以自己熟悉 Laravel。
我的应用程序中有很多表,但我陷入了 3 个表之间的特定多重关系(也许应该使用数据透视表)。
所以,我有 3 个表:
- 角色
- 用户
- 项目
以下规则适用于关系:
- 一个用户可以拥有 0 到多个项目
- 一个项目可以被很多不同的用户访问
- 用户根据其角色被授予特定项目的某些权限
- 用户有一个“事件”项目,应用程序从该项目获取数据。用户可以从项目列表中更改他们的“事件”项目。
(权限与角色相关联,允许具有特定角色的用户对项目执行一组定义的操作)
我最初有一个 Users <-> Roles 效果很好(就代码而言)但是为用户定义的角色允许在每个项目上做一组预定义的事情(这对我来说不够灵活) .
我已经看到另一个帖子了。 same title as mine但我担心这无法满足我的需求,因为属性保存在交集表中,但在我的情况下,我已经有了物理表。
最佳答案
为你的数据透视表制作一个模型,这应该会更容易使用。
项目受让人:
- 项目编号
- 用户编号
- 角色编号 (表示在项目 X 上,用户 Y 具有角色 Z)
然后您可以定义以下关系:
- 项目:hasMany(ProjectAssignees)
- 项目受让人:属于(项目),属于(用户),属于(角色)
- 用户:hasManyThrough(Project, ProjectAssignee), hasMany(ProjectAssignee)
关于php - Laravel 5.1 - 3 个现有物理表之间的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741684/