Laravel 在某些条件下使用withCount方法

Laravel 在某些条件下使用withCount方法,laravel,laravel-5,eloquent,lumen,laravel-5.8,Laravel,Laravel 5,Eloquent,Lumen,Laravel 5.8,我有一个music\u rate表和一个music表: musics_rate: music_id : integer user_id : integer rate_type : boolean 音乐模式: public function rates() { 返回$this->belongtomany(用户::class,'music_rate'); } 现在我想按music\u rates对音乐进行排序,其中rate\u type==truecount(本周创建):

我有一个
music\u rate
表和一个
music
表:

musics_rate:
    music_id : integer
    user_id : integer
    rate_type : boolean
音乐模式

public function rates()
{
返回$this->belongtomany(用户::class,'music_rate');
}
现在我想按
music\u rates
对音乐进行排序,其中
rate\u type==true
count(本周创建):

Music::where('created_at','>=',Carbon::parse('last saturday'))
->withCount(“费率”)
->订货人('rates\u count','desc')
->get();
但它按所有比率(正比率和负比率)进行排序


是否有办法只过滤正速率。

如果您只想要具有正速率的
音乐
型号:

音乐::whereHas('rates',function($q){ $q->where('rate\u type',true); }) ->其中('created_at','>=',Carbon::parse('last saturday')) ->withCount(“费率”) ->orderby('rates\u count','desc') ->get(); 如果您想要所有
音乐
型号,但只加载正
费率

Music::with([
“速率”=>函数($q){
$q->where('rate\u type',true);
}
])
->其中('created_at','>=',Carbon::parse('last saturday'))
->withCount(“费率”)
->orderby('rates\u count','desc')
->get();

您可以添加where条件