Laravel 框架中某個狀態的資料固定在列表頂部

請多多指教發表於2020-06-12

Laravel 框架中某個狀態的資料固定在列表頂部

1.緣由

業務需要列表中某個狀態處於列表頂部,該狀態有多個值(例如:1-5),需要置於頂部的為中間的某個值(例如:2)

  • status 為示例欄位

2.實現

  • 第一種實現方式
    判斷 status 的值是不是等於要置頂的值,起別名,然後再排序。

成功demo1:

$list->selectRaw("if(status=2,1,0) as need_order")
     ->orderBy('need_order','desc')
     ->orderBy('id','desc')
     ->get();
  • 第二張實現方式

成功demo2:

$list->orderByRaw(DB::raw("CASE WHEN a.status = 2 then 1 else 2 end"))
     ->orderBy('id','desc')
     ->get();

3.其他

期望看到的大佬們提供下其他思路

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章