官方提供了非常強大的鏈式語法
不知道的時候可以查看以下連接
http://www.hmoore.net/manual/thinkphp5/135180
# 鏈式操作
[](https://e.topthink.com/api/go/e71e2262b93e6c90e)
數據庫提供的鏈式操作方法,可以有效的提高數據存取的代碼清晰度和開發效率,并且支持所有的CURD操作。
使用也比較簡單,假如我們現在要查詢一個User表的滿足狀態為1的前10條記錄,并希望按照用戶的創建時間排序 ,代碼如下:
~~~
Db::table('think_user')
->where('status',1)
->order('create_time')
->limit(10)
->select();
~~~
這里的`where`、`order`和`limit`方法就被稱之為鏈式操作方法,除了select方法必須放到最后一個外(因為select方法并不是鏈式操作方法),鏈式操作的方法調用順序沒有先后,例如,下面的代碼和上面的等效:
~~~
Db::table('think_user')
->order('create_time')
->limit(10)
->where('status',1)
->select();
~~~
其實不僅僅是查詢方法可以使用連貫操作,包括所有的CURD方法都可以使用,例如:
~~~
Db::table('think_user')
->where('id',1)
->field('id,name,email')
->find();
Db::table('think_user')
->where('status',1)
->where('id',1)
->delete();
~~~
鏈式操作在完成查詢后會自動清空鏈式操作的所有傳值。簡而言之,鏈式操作的結果不會帶入后面的其它查詢。
系統支持的鏈式操作方法有:
| 連貫操作 | 作用 | 支持的參數類型 |
| --- | --- | --- |
| where\* | 用于AND查詢 | 字符串、數組和對象 |
| whereOr\* | 用于OR查詢 | 字符串、數組和對象 |
| wheretime\* | 用于時間日期的快捷查詢 | 字符串 |
| table | 用于定義要操作的數據表名稱 | 字符串和數組 |
| alias | 用于給當前數據表定義別名 | 字符串 |
| field\* | 用于定義要查詢的字段(支持字段排除) | 字符串和數組 |
| order\* | 用于對結果排序 | 字符串和數組 |
| limit | 用于限制查詢結果數量 | 字符串和數字 |
| page | 用于查詢分頁(內部會轉換成limit) | 字符串和數字 |
| group | 用于對查詢的group支持 | 字符串 |
| having | 用于對查詢的having支持 | 字符串 |
| join\* | 用于對查詢的join支持 | 字符串和數組 |
| union\* | 用于對查詢的union支持 | 字符串、數組和對象 |
| view\* | 用于視圖查詢 | 字符串、數組 |
| distinct | 用于查詢的distinct支持 | 布爾值 |
| lock | 用于數據庫的鎖機制 | 布爾值 |
| cache | 用于查詢緩存 | 支持多個參數 |
| relation\* | 用于關聯查詢 | 字符串 |
| with\* | 用于關聯預載入 | 字符串、數組 |
| bind\* | 用于數據綁定操作 | 數組或多個參數 |
| comment | 用于SQL注釋 | 字符串 |
| force | 用于數據集的強制索引 | 字符串 |
| master | 用于設置主服務器讀取數據 | 布爾值 |
| strict | 用于設置是否嚴格檢測字段名是否存在 | 布爾值 |
| sequence | 用于設置Pgsql的自增序列名 | 字符串 |
| failException | 用于設置沒有查詢到數據是否拋出異常 | 布爾值 |
| partition | 用于設置分表信息 | 數組 字符串 |
- 文件作用與框架文件說明
- 助手函數
- 系統常量(常用與自定義)
- 自定義配置文件extra(文件夾)
- 自定義配置文件.Env
- 路由pathinof 方式
- 路由強制模式(主要用這個)
- 路由的請求方法幾種常用
- 路由參數規則設置
- 路由分組閉包與MISS路由
- 資源路由
- 請求Request和參數過濾
- session和cookie的配置及獲取
- 判斷路由請求類型及Request注冊方法
- 響應數據方法create
- json xml jsonp助手函數
- 改命名空間(改成自定義的)
- (controller里常用的方法)success與error重定向的使用nignx重寫的配置
- _initialize構造函數
- beforeAction前置操作使用
- 空路由與多級控制器使用
- 連接數據庫操作(ORM)
- 助手函數db()
- 插入數據庫操作(ORM)
- 查詢數據庫操作(ORM)
- (鏈式語法)where條件查詢數據庫(ORM)
- (鏈式語法)只查詢某個字段或者排除某個字段鏈式操作field(ORM)
- (鏈式語法)排序查詢order(ORM)
- (鏈式語法)查詢條數limit(ORM)
- (鏈式語法)查詢多條重復數據只返回一個distinct方法查詢(ORM)
- (鏈式語法)獲取mysql語句fetchSql(ORM)
- (鏈式語法)查詢改表名輸出alias(ORM)
- 連表查詢join() (ORM)
- 數據庫事務監聽(ORM)
- (改數據)更新數據庫(ORM)
- (改數據)更新數據庫之自增與自減(ORM)
- 鏈式操作語法(ORM)
- (刪除數據)刪除數據(ORM)
- model模型創建方法
- (增)插入數據(Model)
- (查)查詢數據(Model)
- 關于類 (雜項整理)
- (查)動態查詢數據(Model)
- (改)更新數據庫(Model)
- (刪)刪除數據(Model)
- 數據表時間戳(Model)
- view視圖創建與渲染模板
- view視圖輸出與調用
- view輸出常量與Session 與Cookie值
- view輸出函數以及過濾
- view視圖循環輸出與if判斷
- view各項配置以及修改(自定義資源路徑)
- view各項配置以及修改(修改模板起始符)
- view 模板引入和自定義配置
- view模板繼承
- thinkphp 實戰命令行生成模塊控制器模型視圖
- Validate登錄驗證使用方法
- Validate驗證場景分離寫法
- Validate令牌驗證
- captcha驗證碼配置
- 圖片以及文件上傳
- 資源路由下URL語法拼接模板循環的ID
- view三元運算符
- POST下的PUT請求(安全方法)
- 路由重定向
- 常見問題解決
- config文件
- 模板里使用路由路徑
- 原生PHP在thinkphp中拓展
- 公共函數文件
- 5.1與5.0區別
- 5.1路由區別
- 5.1中間件
- 5.1微信支付