2017-02-03 47 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();