我有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');
}
有什么建议吗?
答案 0 :(得分:1)
以下就足够了:
public function clinics()
{
return $this->belongsToMany('Petable\Models\Clinic', 'user_pets')->distinct();
}
然后这可以让你打电话
$user->clinics();