我有2个收藏品。 车辆和视图。 我想带回按照观看次数排序的车辆清单。
我的车辆类
class Vehicle extends Moloquent {
protected $dates = ['date_assigned'];
public function associated_views()
{
return $this->hasMany('App\Collections\View');
}
}
我的View类
class View extends Moloquent {
public function associated_vehicle()
{
return $this->belongsTo('App\Collections\Vehicle');
}
}
我可以通过$ vehicle-> associated_views-> count()来获取事后的计数,但这不能让我在拉回每条记录之前对字段进行排序。这可能吗?
答案 0 :(得分:0)
使用withCount()
:
Vehicle::withCount('views')->latest('views_count')->get()
如果您想要计算关系中的结果数而不实际加载它们,您可以使用
withCount
方法,这会在生成的模型上放置{relation}_count
列
https://laravel.com/docs/5.5/eloquent-relationships#counting-related-models