belongsToMany on not primary field

时间:2017-02-18 13:20:58

标签: php eloquent many-to-many laravel-5.1

例如我有4张桌子:
建筑物
id,title,...
房间
id,building_id,title,...
公司
id,title,...
companies_to_buildings
company_id,building_id

我想从房间模型中获取公司。
从建筑模型我可以做类似

的事情
class Building extends Model
{
    public function companies(){
        return $this->belongsToMany('App\Company', 'company_building');
    }
}

class Building extends Model
{
    public function companies(){
        return $this->belongsToMany('App\Company', 'company_building', 'building_id', 'company_id');
    }
}

但如果我在房间模型中这样做,它将无法正常工作。它将尝试在companies_to_buildings表中找到companies_to_buildings.building_id = room.id的行。我如何从房间模型中获得公司?

1 个答案:

答案 0 :(得分:0)

您可以使用hasManyThrough

示例:

public function series()
{
return $this->hasManyThrough('Series', 'Product');
}