挖了很长一段时间,我没有太多代码...... :( 我想添加一种机制,根据帖子分数/创建日期对我网站中的帖子进行排名
基本上我需要的是一个查询, post.created_at - (减去) TIME(现在)为 VALUE * 而不是按得分/ VALUE * DESC
排序到目前为止,我已成功按时间/分数排序
$posts = Post::orderBy('score', 'DESC')->orderBy('created_at', 'DESC')->paginate(12);
答案 0 :(得分:2)
您可以使用DB :: raw()函数创建排名分数,然后在orderBy方法中使用它。
POST::select(DB::raw('(score / (created_at -NOW())) as "ordering_value", other, columns'))->orderBy("ordering_value", "desc");
我认为你想要的是NOW() - created_at
来获得帖子的年龄。