首页 文章

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

提问于
浏览
1

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

posts:
  id
  name:

tags:
  id
  name:

posts_tags:
   post_id
   tag_id
   priority_id

priorities
   id:
   value:

如您所见, posts_tags 表示 PostTag 之间的 many-to-many 关系 . 但是,那个关系的实例,与 Priorities 的关系也是 One To Many

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

1 回答

  • 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
        ]
    ];
    

相关问题