LARAVEL - 如何在3个模型之间建立间接关系

时间:2016-09-08 20:11:07

标签: laravel eloquent models

我有3个型号:用户,宠物和诊所。

让我们假设桌子:用户,宠物和诊所。关系是,一个用户可以有一个以上的宠物,一个宠物只有一个诊所。

在桌子上"宠物"我有一个fK到user_id,另一个到了clinic_id。

我想做类似的事情:

$user->clinics(); 
用户模型上的

返回与用户关联的所有不同诊所。现在我只能这样做:

$user->pets()->with('clinics); 

但我想只返回不同的诊所。

用户模式:

public function pets()
{
    return $this->hasMany('Petable\Models\Pet', 'user_id', 'id');
}

宠物莫代尔:

public function clinic()
{
    return $this->belongsTo('Petable\Models\Clinic', 'clinic_id', 'id');
}

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

以下就足够了:

public function clinics()
{
    return $this->belongsToMany('Petable\Models\Clinic', 'user_pets')->distinct();
}

然后这可以让你打电话

$user->clinics();