Laravel - ManyToMany数据透视表与其他关系

时间:2016-02-22 17:59:40

标签: php laravel orm eloquent

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

posts:
  id
  name:

tags:
  id
  name:

posts_tags:
   post_id
   tag_id
   priority_id

priorities
   id:
   value:

如您所见,posts_tags代表many-to-manyPost之间的Tag关系。但是,该关系的该实例与One To Many

之间也存在Priorities关系

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

1 个答案:

答案 0 :(得分:0)

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

<?php

return [

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