thinkphp3.2中order方法怎么用

thinkphp3.2中order方法用于對操作的結(jié)果進(jìn)行排序,是模型連貫操作方法之一,相當(dāng)于是select語句中的一個order by子句,用法為“$Model->where()->order()->limit()->select()”。

thinkphp3.2中order方法怎么用

本文操作環(huán)境:Windows10系統(tǒng)、thinkphp3.2版、Dell G3電腦。

thinkphp3.2中order方法怎么用

order方法屬于模型的連貫操作方法之一,用于對操作的結(jié)果排序。

用法如下:

$Model->where('status=1')->order('id?desc')->limit(5)->select();

注意:連貫操作方法沒有順序,可以在select方法調(diào)用之前隨便改變調(diào)用順序。

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

支持對多個字段的排序,例如:

$Model->where('status=1')->order('id?desc,status')->limit(5)->select();

如果沒有指定desc或者asc排序規(guī)則的話,默認(rèn)為asc。

如果你的字段和mysql關(guān)鍵字有沖突,那么建議采用數(shù)組方式調(diào)用,例如:

$Model->where('status=1')->order(Array('order','id'=>'desc'))->limit(5)->select();

補(bǔ)充:

Thinkphp無法使用->order() 排序的兩種解決辦法!

使用ThinkPHP,卻發(fā)現(xiàn)無法使用->order($order)來排序。

$order = ” info.date2 desc “;

很遺憾的是這樣寫結(jié)果order卻變成了 order by date2 limit … desc不見了。

解決辦法一:

$order 里面兩邊不能有任何空格,$order = “info.date2 desc”;(正確)。$order = ” info.date2 desc”;(錯誤!)

解決辦法二:

打開文件:D:WebSiteZbphp.comwwwThinkPHPExtendModelViewModel.class.php

修改第136行,改成 $array = explode(‘ ‘, trim($order));加上trim 保存即可,如圖所示:

thinkphp3.2中order方法怎么用

推薦學(xué)習(xí):《PHP視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享