我有2个型号:Video
,Country
,想要按照视图数量排序检索每个国家的前5个视频,并希望使用视频模型而不是国家模型这样做,所以我将从
$videos = Video::with('user')->orderBy('views', 'desc')->get();
因此,代码应返回前5个国家/地区的视频
如果给出以County::with('videos')
开头的解决方案,我们将不胜感激
这应该有帮助,它返回视频而不迭代任何循环。
$countries = Country::with(['videos' => function($query) {
$query->orderBy('views', 'desc')->take(5);
}])->get();
你必须需要这个循环来获取视频
$topVideos = [];
foreach ($countries as $country) {
$topVideos[] = $country->videos;
}
$countries = Country::with(['videos' => function($query){
$query->orderBy('views', 'desc');
}])
->get();
foreach ($countries as $country) {
$top_5_videos = $country->videos->take(5);
}