【发布时间】:2016-02-22 17:59:39
【问题描述】:
在 Laravel 5.2 中,假设我在两个模型之间有一个 ManyToMany 关系,Post 和 Tag(为了举例)。但是,它们之间的数据透视表也与另一个表有关系:
posts:
id
name:
tags:
id
name:
posts_tags:
post_id
tag_id
priority_id
priorities
id:
value:
如您所见,posts_tags 表示Post 和Tag 之间的many-to-many 关系。但是,该关系的该实例也与Priorities 具有One To Many 关系
如何在 Eloquent 中建立这种关系?
【问题讨论】:
-
优先有很多帖子?
-
@JilsonThomas 不幸的是,事情没那么简单。优先级适用于帖子和标签之间关系的特定实例。优先级不仅适用于帖子
-
在这种情况下,您如何称呼优先级?能用简单的英文解释一下吗?
-
@JilsonThomas 本质上,有几个不同的优先级,帖子被添加到帖子队列中。 Post 和 Tag 之间的关系表示“排队”项目。但是,每个实例都可以有一个优先级,客户端代码使用该优先级来确定每个 Post 在队列中的功能。
-
文档说:如果您的数据透视表包含额外的属性,则必须在定义关系时指定它们:
return $this->belongsToMany('App\Role')->withPivot('column1', 'column2');