查询使用两个不同的关系laravel

时间:2018-03-11 10:57:32

标签: laravel

我有这样的关系:一个secteur有很多部分,一个部分有很多用户,所以一个用户属于一个部分,一个部分属于一个secteur。

在Secteur模型中

public function sections()
{
    return $this->hasMany(Section::class,'secteur_id');
}

在章节模型中

  public function users()
{
    return $this->hasMany(User::class,'section_id');
}

 public function secteur()
{
    return $this->belongsTo(Secteur::class,'secteur_id');
}

在用户模型中

 public function section()
{
    return $this->belongsTo(Section::class,'section_id');
}

现在我正在尝试让所有属于secteur的用户,因为我需要从secteur和所有属于我所有部分的用户中检索所有部分。

我不知道该怎么做。

ps:对不起我的英语我是法国人

1 个答案:

答案 0 :(得分:0)

Eloquent有一个hasManyThrough关系,可能就是你想要的。

在secteur上,你可以添加:

public function users()
{
    return $this->hasManyThrough(User::class, Section::class);
}

作为docs州:

  

“传递给hasManyThrough方法的第一个参数是名称   我们希望访问的最终模型,而第二个参数是   中间模型的名称。“

如果需要,您也可以将密钥作为附加参数传递,但是您在上面使用的那些看起来像默认值,如果它们可以省略它们。