Php 按多列之和排序LAVEL

Php 按多列之和排序LAVEL,php,mysql,laravel,equivalent,Php,Mysql,Laravel,Equivalent,我想问一下如何对多个列中的某些列进行排序。 在items表中,我有3列“is_Recommendated”、“is_popular”、“is_new”(标签) 我想按每行的标签总数排序。例如 id=1 has is_recommended=1, is_popular=1, is_new=1 => attributes = 3 id=2 has is_recommended=0, is_popular=0, is_new=1 => attributes = 1 id=3 has is_

我想问一下如何对多个列中的某些列进行排序。 在items表中,我有3列“is_Recommendated”、“is_popular”、“is_new”(标签) 我想按每行的标签总数排序。例如

id=1 has is_recommended=1, is_popular=1, is_new=1 => attributes = 3
id=2 has is_recommended=0, is_popular=0, is_new=1 => attributes = 1
id=3 has is_recommended=1, is_popular=0, is_new=1 => attributes = 2
因此,顺序将是id2、id3、id1。 我的代码:


这回答了你的问题吗?是的,我试过了,但有一个例外:::getCollection()不存在用于排序的原始表达式。在问题回答中使用
->paginate(20)
而不是
->get()
。对不起,我认为它无法解决我的问题。这是否回答了您的问题?是的,我试过了,但有一个例外:::getCollection()没有使用原始表达式进行排序。请在问题回答中使用
->paginate(20)
而不是
->get()
,抱歉,但我认为它无法解决我的问题。
$items = Item::addSelect(['attributes' => Item::selectRaw('`is_recommended` + `is_popular` + `is_new` as attributes')])
        ->sortable()
        ->orderBy('id', 'DESC')->with('item_category', 'restaurant')->paginate(20);