2016-02-26 50 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