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

Mic*_*ins 1 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
Run Code Online (Sandbox Code Playgroud)

我如何以雄辩的方式做到这一点?我对它没有太多运气.

zwa*_*cky 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();
Run Code Online (Sandbox Code Playgroud)