Laravel ORM:数据透视表中字段的独特组合

时间:2015-01-14 09:22:48

标签: mysql laravel eloquent

此问题扩展了Laravel文档中提供的示例Eloquent : Working With Pivot Tables

此处的关系是User有许多Role个与之相关的对象,而每个Role都由多个Task&#39组成; S。

这些模型之间的关系是:

用户和角色:

  • 每个Role可能只涉及一个User,但User可能有多个Role
  • 一对多关系

角色和任务

  • 每个Role可以有多个Task与之关联,每个Task可以属于多个Role
  • 多对多关系

就数据库模式(MySql)而言,我们有:

  • 没有外键的users
  • 带有roles外键的user_id
  • 一个tasks
  • role-task数据透视表

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

是否存在使用Laravels Eloquent ORM系统应用此约束的内置方法?如果没有,那将是一个整洁的解决方法?


编辑:

雄辩的描述:

User hasMany Role
Role belongsToMany Task

问题:如何防止分配到具有完全相同的user

相关集合的roles多个tasks

0 个答案:

没有答案