在 ThinkPHP 的模型連貫操作中,order 方法專門用於對查詢或操作結果進行排序。它支援單字段、多字段排序,並提供陣列方式避免關鍵字衝突,是構建有序數據集的關鍵工具。
$Model->where('status=1')->order('id desc')->limit(5)->select();
以上代碼查詢狀態為 1 的記錄,按 id 降序排列,取前 5 條。連貫操作方法調用順序不固定,可在 select 前任意排列。
$Model->where('status=1')->order('id desc,status')->limit(5)->select();
支援多字段排序,字段間用逗號分隔。未指定 asc 或 desc 時,默認為升序(asc)。
$Model->where('status=1')
->order(array('order', 'id'=>'desc'))
->limit(5)
->select();
當字段名(如 order)與 SQL 關鍵字衝突時,使用陣列格式 array('字段名', '字段名'=>'排序規則') 可有效繞過解析錯誤,確保語句正確執行。
asc。在涉及用戶輸入排序字段的場景(如前端表格點擊列頭排序),務必使用白名單驗證字段名,防止 SQL 注入風險。結合 field 方法限制返回字段,可進一步提升安全性與性能。