php – Laravel 5.1 – 3个现有物理表之间的数据透视表

前端之家收集整理的这篇文章主要介绍了php – Laravel 5.1 – 3个现有物理表之间的数据透视表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是Laravel 5.1的新手,我目前正在开展一个项目,让我自己熟悉Laravel.

我的应用程序中有很多表,但我遇到了3个表之间的特定多重关系(可能应该使用数据透视表).

所以,我有3个表:

>角色
>用户
>项目

以下规则适用于关系:

>用户可以拥有0到多个项目
>许多不同的用户都可以访问项目
>根据用户的角色,授予用户某些特定项目的权限
>用户有一个“活动”项目,该项目是应用程序从中获取数据的项目.用户可以从项目列表中更改其“活动”项目.

(权限链接到角色并允许具有特定角色的用户对项目执行一组已定义的操作)

我最初有一个用户< - >角色运作良好(就代码而言)但为用户定义的角色允许在每个项目上执行预定义的事情(对我来说不够灵活).

我已经看过另一篇文章了. same title as mine,但我担心这不能满足我的需求,因为属性保存在交叉表上,虽然在我的情况下,我已经有了物理表.

解决方法

为您的数据透视表创建一个模型,这样可以更容易使用.

ProjectAssignee:

> project_id
> user_id
> role_id
(表示项目X,用户Y具有角色Z)

然后,您可以定义以下关系:

>项目:hasMany(ProjectAssignees)> ProjectAssignee:belongsTo(Project),belongsTo(User),belongsTo(Role)>用户:hasManyThrough(Project,ProjectAssignee),hasMany(ProjectAssignee)

猜你在找的Laravel相关文章