php - 如何在 laravel 中使用数据透视表中的 3 个关系创建关系?
问题描述
我在数据库架构中有以下表格:
- 用户(身份证、姓名、姓氏)
- 团队(ID,名称)
- 角色(ID,姓名)
- 权限(ID,名称)
- team_role_permission(team_id、role_id、permission_id)
- team_user (user_id, team_id, role_id)
我的目标是描述团队、角色和权限模型之间的关系。我阅读了 Laravel 文档,无法使用具有 3 个关系的数据透视表。实际上,我只会使用 3 个关系:
- 球员在什么球队,他在每支球队中的角色是什么(模型
teams
中的方法User/Player
) - 团队中有哪些球员,他们的角色是什么(模型
players
中的方法Team
)
但我不明白如何将它与 laravel 关系一起使用?
该表team_role_permission
及其关系必须是,因为团队创建者应该能够手动编辑他的(每个)团队的权限。
解决方案
可能的解决方案可能是手动存储在您的数据透视表中。你应该为你的数据透视表创建一个模型。
$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();
推荐阅读
- excel - 您如何在每个单元格的范围内对文本的某些部分加下划线、粗体和斜体?
- android - 如何在android布局textview中设置大整数?
- rust - 在 Rust 中,我在哪里可以找到结构的方法实现的参考?
- javascript - 如何在 Vuetify 2.0 中使用带有 v-file-input 标签的 v-tooltip?
- spring - Spring Boot Rest Controller - 是否可以在处理请求之前使用自定义注释来过滤请求?
- python - 如何在 Spark 中读取压缩的 avro 文件(.gz)?
- javascript - 生成从 min 到 max 范围内均匀分布的整数列表
- javascript - 以 JSON 格式保存动态 HTML 表格
- git - 创建新的 Git 存储库时,Visual Studio 2019 没有 GitLab 选项
- html - 在线托管时字体字体不起作用