我有一个可以有多个类别的模型,关系定义如下:
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');
根据位置返回最接近的模型,如何仅返回具有特定类别的模型?
答案 0 :(得分:1)
使用knownTimeZoneNames方法:
Listing::closest($lat, $lng, $radius)
->whereHas('categories', function($q) use($categoryId) {
$q->where('id', $categoryId);
})
->orderBy('distance')
->get();