Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Laravel ORM:透视表中字段的唯一组合_Mysql_Laravel_Eloquent - Fatal编程技术网

Mysql Laravel ORM:透视表中字段的唯一组合

Mysql Laravel ORM:透视表中字段的唯一组合,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,这个问题扩展了Laravel文档中提供的示例 这里的关系是一个用户有许多与其相关的角色对象,每个角色由许多任务组成 这些模型之间的关系是: 用户和角色: 每个角色只能与一个用户相关,但是一个用户可能有多个角色 一对多关系 角色和任务 每个角色可以有许多与其关联的任务,每个任务可以属于多个角色 多对多关系 因此,就数据库模式(MySql)而言,我们有: 没有外键的users表 带有用户id外键的角色表 A任务表 角色任务透视表 简单地说,我需要应用的约束条件是,用户不能与由完全相同的

这个问题扩展了Laravel文档中提供的示例

这里的关系是一个
用户
有许多与其相关的
角色
对象,每个
角色
由许多
任务
组成

这些模型之间的关系是:

用户和角色:

  • 每个
    角色
    只能与一个
    用户
    相关,但是一个
    用户
    可能有多个
    角色
  • 一对多关系
角色和任务

  • 每个
    角色
    可以有许多与其关联的
    任务
    ,每个
    任务
    可以属于多个
    角色
  • 多对多关系
因此,就数据库模式(MySql)而言,我们有:

  • 没有外键的
    users
  • 带有
    用户id
    外键的
    角色
  • A
    任务
  • 角色任务
    透视表

简单地说,我需要应用的约束条件是,用户不能与由完全相同的任务组成的多个角色关联,但是两个角色的可以由完全相同的任务组成

使用Laravels雄辩的ORM系统是否有一种内置的方法来应用此约束?如果不是,什么是整洁的解决方法


编辑: 雄辩的描述:

User hasMany Role
Role belongsToMany Task

问题:如何防止分配给一个
用户
多个
角色
具有完全相同的
任务相关集合

检查我对您的问题所做的编辑-使用这两行文字,而不是冗长且难以阅读的描述,一切都变得清晰(在有说服力的ofc背景下)。然后,检查问题是否是你真正想要的。如果是的话,让我知道,我会给你看的。是的,没错。干杯