2017-02-03 45 views
1

我都可以有一個以上類別的模型,關係是這樣定義返回一個模型:如何與特定類別

public function categories() 
{ 
    return $this->belongsToMany(ListCategory::class, 'listing_listcategory', 'listing_id', 'category_id'); 
} 

和分類模型裏面,我有:

public function listings() 
{ 
    return $this->belongsToMany(Listing::class, 'listing_listcategory'); 
} 

我怎樣才能選擇屬於一個類別的模型?

目前我有這樣的:

Listing::closest($lat, $lng, $radius)->orderBy('distance'); 

它返回基於位置最接近的車型,我怎麼只返回型號,特定類別?

回答

1

使用whereHas()方法:

Listing::closest($lat, $lng, $radius) 
     ->whereHas('categories', function($q) use($categoryId) { 
      $q->where('id', $categoryId); 
     }) 
     ->orderBy('distance') 
     ->get();