Mysql Laravel ORM:透视表中字段的唯一组合
这个问题扩展了Laravel文档中提供的示例 这里的关系是一个Mysql Laravel ORM:透视表中字段的唯一组合,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,这个问题扩展了Laravel文档中提供的示例 这里的关系是一个用户有许多与其相关的角色对象,每个角色由许多任务组成 这些模型之间的关系是: 用户和角色: 每个角色只能与一个用户相关,但是一个用户可能有多个角色 一对多关系 角色和任务 每个角色可以有许多与其关联的任务,每个任务可以属于多个角色 多对多关系 因此,就数据库模式(MySql)而言,我们有: 没有外键的users表 带有用户id外键的角色表 A任务表 角色任务透视表 简单地说,我需要应用的约束条件是,用户不能与由完全相同的
用户
有许多与其相关的角色
对象,每个角色
由许多任务
组成
这些模型之间的关系是:
用户和角色:
- 每个
只能与一个角色
相关,但是一个用户
可能有多个用户
角色
- 一对多关系
- 每个
可以有许多与其关联的角色
,每个任务
可以属于多个任务
角色
- 多对多关系
- 没有外键的
表users
- 带有
外键的用户id
表角色
- A
表任务
透视表角色任务
简单地说,我需要应用的约束条件是,用户不能与由完全相同的任务组成的多个角色关联,但是两个角色的可以由完全相同的任务组成 使用Laravels雄辩的ORM系统是否有一种内置的方法来应用此约束?如果不是,什么是整洁的解决方法
编辑: 雄辩的描述:
User hasMany Role
Role belongsToMany Task
问题:如何防止分配给一个
用户
多个角色
具有完全相同的任务相关集合
检查我对您的问题所做的编辑-使用这两行文字,而不是冗长且难以阅读的描述,一切都变得清晰(在有说服力的ofc背景下)。然后,检查问题是否是你真正想要的。如果是的话,让我知道,我会给你看的。是的,没错。干杯