2017-02-18 56 views
1

,比如我有4個表:
建築
ID,標題,...
客房
ID,building_id,標題,...
公司
ID,標題,...
companies_to_buildings
COMPANY_ID,building_id

我想從房間模型中獲得公司。
從建築模型,我可以做這樣的事情belongsToMany上不是主要的領域

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的行。我怎樣才能從房間模型中獲得公司?

回答

0

您可以使用hasManyThrough

例:

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

我應該在hasManyThrought使用哪個型號?
公共職能公司(){$返回這 - > hasManyThrough( '應用程序\公司', '應用程序\建築', 'building_id', '身份證', 'building_id');}
創建查詢像
選擇公司(5)
但我需要這樣的東西:
選擇公司。*,來自公司。*,來自公司內部加入建築building.building_id = company.id其中company.deleted = 0和building.building_id內部加入companies_to_buildings on companies_to_buildings.company_id = company.id where company.deleted = 0 and companies_to_buildings.building_id in(5) –