Eloquent:乘以并添加列,然后按结果排序

时间:2014-05-04 18:28:57

标签: php mysql laravel eloquent

我正在建立一个讨论区,我正在创建一个名为“Top”的主题列表,该主题按主题的“热门程度”排序。

我正在尝试做类似的事情:

SELECT ((post_count * 2) + (like_count * 4)) as popularity_score
FROM `topics`
    WHERE `deleted`=0
ORDER BY popularity_score DESC

我如何以雄辩的方式做到这一点?我对它没什么好运。

1 个答案:

答案 0 :(得分:6)

您可以使用DB::raw执行此操作:

DB::table('topics')
    ->select('id', '...', DB::raw('(post_count*2) + (like_count*4) as popularity_score'))
    ->where('deleted', '=', 0)
    ->orderBy('popularity_score', 'asc')
    ->get();