2016-02-26 19 views
0

我有一個brand表,models表,categories表。按預定加載值排序集

brandmodelshasMany關係,modelsbelongsTo關係brandcategoriesmodelsbelongsToMany關係。一切正常。

現在,我該如何獲得某個品牌的所有型號?

我已經試過這樣:

$categories = Category::with(['models'=>function($query) use ($brand_name){ 
      $query->with(['brand'=>function($query) use ($brand_name){ 
       $query->where('name', $brand_name); 
      }]); 
     }])->where('name', 'presses')->first(); 

但它有一個特定的類別中選擇所有車型相同的效果。這不是過濾品牌名稱。

我該怎麼做?

+0

你可以給特定類別的例子。所看到的是品牌名稱,但不是類別名稱 – oseintow

+0

@oseintow類別名稱將是'press' - >最後一行。 – user1012181

回答

1

試試這個,讓我們看看怎麼回事

$categories = Category::with(['models'=>function($query) use ($brand_name){ 
    $query->whereHas('brand', function($query) use ($brand_name){ 
     $query->where('name', $brand_name); 
    }); 
},'models.brand'])->where('name', 'presses')->first(); 
+0

這工作。真棒。那麼,whereHas'可以收集到另一個急切的負載? – user1012181

+0

它確實爲你工作 – oseintow

+0

是的,它爲我工作 – user1012181