laravel - Laravel - 具有 3 个模型的数据透视表,多对多和一对多
问题描述
我想在我的 Laravel 项目中为具有角色和权限的用户进行身份验证。实际上这不是问题,但用户可以创建团队或被邀请成为任何团队的成员,并且任何团队中的每个用户在团队中都有他的一个角色(在另一个团队中,用户可能有另一个角色)。本质上,用户必须有许多角色,但在一个特定团队中只有一个角色,我不明白我是否创建了正确的数据库关系。
一般来说:
- 用户有很多团队,团队有很多用户(多对多)
- 团队有很多角色,角色有很多团队(多对多)
- 用户有许多角色,但团队中只有一个角色应该存在什么关系?
我很感兴趣如何正确地做到这一点。如何在未来尽量减少杂乱的代码,避免重新设计数据库关系。
非常感谢你们!
解决方案
也许您确实需要多态关系: https ://laravel.com/docs/master/eloquent-relationships#custom-polymorphic-types 与变形图。 https://nicolaswidart.com/blog/laravel-52-morph-map
推荐阅读
- node.js - 如何使用 SendGrid 将图像嵌入到 Node.js 中的 html 邮件
- google-maps - Agm 谷歌地图 - 如何将纬度和经度绑定到 HTML
- oauth-2.0 - 点击浏览器上的后退按钮后第二次登录时关联失败
- javascript - 在指定的时间内运行一个函数并停止
- c# - EF:当它们不为空时按2个字段排序
- php - 如何在 PHP 中突出显示 utf8 文本中的非 utf8 字符串?
- wordpress - 如何在 wordpress 中模拟检查元素结果?
- typescript - 在 TypeScript 中将字符串转换为枚举
- git - gpg:keyblock 资源 pubring.kbx 未找到,因为 repo 路径以 gnupg 主页为前缀
- python - 如何从 Python 列表中的字符串中获取重量和数量?