Laravel-具有其他关系的多对多数据透视表


Laravel - ManyToMany Pivot Table With Other Relationship

在Laravel 5.2中,假设我在两个模型(PostTag)之间有一个ManyToMany关系(为了示例)。 但是,它们之间的数据透视表也与另一个表有关系:

posts:
  id
  name:
tags:
  id
  name:
posts_tags:
   post_id
   tag_id
   priority_id
priorities
   id:
   value:

如您所见,posts_tags表示PostTag之间的many-to-many关系。 但是,该关系的实例也与PrioritiesOne To Many关系

我如何处理在 Eloquent 中建立这种关系?

目前,我在 PostTag 之间保持了ManyToMany,但是,我现在只是将priority_id作为属性存储在数据透视表上。 Priority只有一个ID和一个Name,所以我选择将Priority的映射存储在Laravel配置文件中。 所以现在,当我拉取特定PostTag的记录时,我可以priority_id拉取为一列并将其映射到配置中的值,而不是将此数据存储为数据库中的显式关系:

<?php
return [
   'priorities' => [
       1 => 'first value',
       2 => 'second value',
       3 => 'third value',
       // etc
    ]
];