thinkphp3.2中order方法用於對操作的結果進行排序,是模型連貫操作方法之一,相當於是select語句中的一個order by子句,用法為「$Model->where ()->order()->limit()->select()」。
本文操作環境:Windows10系統、ThinkPHP3.2版、Dell G3電腦。
order方法屬於模型的連貫操作方法之一,用來對操作的結果排序。
用法如下:
$Model->where('status=1')->order('id desc')->limit(5)->select();
注意:連貫運算子沒有順序,可以在select方法呼叫之前隨便改變呼叫順序。
支援對多個欄位的排序,例如:
$Model->where('status=1')->order('id desc,status')->limit(5)->select();
如果沒有指定desc或asc排序規則的話,則預設為asc。
如果你的欄位和mysql關鍵字有衝突,那麼建議採用數組方式調用,例如:
$Model->where('status=1')->order(array('order','id'=>'desc'))->limit(5)->select();
補充:
Thinkphp無法使用->order() 排序的兩種解決方法!
使用ThinkPHP,卻發現無法使用->order($order)來排序。
$order = " info.date2 desc ";
很遺憾的是這樣寫結果order卻變成了 order by date2 limit ... desc不見了。
解決一:
$order 裡面兩邊不能有任何空格,$order = "info.date2 desc";(正確)。 $order = " info.date2 desc";(錯誤!)
解決方法二:
開啟檔案:D:\WebSite\Zbphp.com\www\ThinkPHP\Extend\Model\ ViewModel.class.php
修改第136行,改成$array = explode(' ', trim($order));加上trim 儲存即可,如圖所示:
#推薦學習:《PHP影片教學》
以上是thinkphp3.2中order方法怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!