如何在 laravel 中使用数据透视表中的 3 个关系创建关系?
Posted
技术标签:
【中文标题】如何在 laravel 中使用数据透视表中的 3 个关系创建关系?【英文标题】:How to create relations in laravel with 3 relations in the pivot table? 【发布时间】:2019-03-24 21:20:20 【问题描述】:我在数据库架构中有以下表格:
用户(ID、姓名、姓氏) 团队(ID、名称) 角色(ID、姓名) 权限(ID、姓名) team_role_permission(team_id、role_id、permission_id) team_user (user_id, team_id, role_id)我的目标是描述团队、角色和权限模型之间的关系。我阅读了 Laravel 文档,无法使用具有 3 个关系的数据透视表。实际上,我只会使用 3 个关系:
玩家在哪些球队以及他在每支球队中的角色(User/Player
模型中的方法 teams
)
球队中有哪些球员,他们的角色是什么(Team
模型中的方法players
)
但是我不明白如何在 laravel 关系中使用它?
表team_role_permission
和它的关系必须是,因为团队创建者应该能够手动编辑他的(每个)团队的权限。
【问题讨论】:
【参考方案1】:可能的解决方案是手动存储在您的数据透视表中。 你应该为你的数据透视表创建一个模型。
$team = Team::create();
$role = Role::create();
$permission = Permission::create();
$pivot = new TeamRolePermission();
$pivot['team_id'] = $team->id;
$pivot['role_id'] = $role->id;
$pivot['permission_id'] = $permission->id;
$pivot->save();
【讨论】:
以上是关于如何在 laravel 中使用数据透视表中的 3 个关系创建关系?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中使用附加或同步方法在数据透视表中插入多个值