首页 > 解决方案 > BelongsToMany 关系。如何获取唯一行

问题描述

'member_companies'在数据库中有下一张表:

在此处输入图像描述

并且在模型成员中有一个关系:

public function companies()
{
    return $this->belongsToMany(Company::class, 'member_companies');
}

它还给我所有重复的公司。例如,Member::find(238)->companies->pluck('id')返回

[
  6,
  5,
  7,
  2,
  10,
  8,
  4,
  13,
  14,
  10,
  8,
  13
]

但我只想要独特的物品。喜欢

[
    6,
    5,
    7,
    2,
    10,
    8,
    4,
    13,
    14,
]   

我怎样才能用雄辩的关系做到这一点?

标签: laraveleloquentuniquehas-and-belongs-to-many

解决方案


不确定它是否是新添加的,但您可以这样做(至少在 Laravel 7 中):

public function companies()
{
    return $this->belongsToMany(Company::class, 'member_companies')->distinct();
}

推荐阅读