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条件