我有一个模型'图片'(数据库表'uploaded_pictures')有许多'喜欢'(s)< / p>
私有函数likeWrapper(){
返回$ this-&gt; hasMany('Like','typeId');
}
公共函数likes(){
返回$ this-&gt; likeWrapper() - &gt; where('type','=',Config :: get('enums.content_types.PICTURE')) - &gt; get();
}
code> pre>
现在我想创建一个页面,分页,返回按喜欢计数排序的所有图片。 我使用Collection sortBy方法完成了这项工作: p>
$ pictures = Picture :: get() - &gt; sortByDesc(function($ picture){
return $ picture- &gt; likes() - &gt; count();
});
code> pre>
但是此结果无法分页。 我有一个原始查询来完成这项工作,但我很难将其转换为Eloquent查询构建器: p>
$ query =“SELECT p。*,COUNT(l.id)AS countLikes
FROM uploaded_pictures AS p
LEFT OUTER JOIN
(SELECT id,typeId,type FROM likes WHERE type ='picture')AS l
ON p.id = l.typeId
WHERE date&lt; ='$ referenceDate'
GROUP BY p.id,l.typeId
ORDER BY countLikes DESC“;
$ pictures = DB :: select(DB :: raw($ query));
code> < / pre>
Eloquent中此查询的等效内容是什么? 我正在使用Laravel 4.2.11。 p>
div>