tp5數據庫——鏈式操作


鏈式操作

數據庫提供的鏈式操作方法,可以有效的提高數據存取的代碼清晰度和開發效率,並且支持所有的CURD操作。

使用也比較簡單,假如我們現在要查詢一個User表的滿足狀態為1的前10條記錄,並希望按照用戶的創建時間排序 ,代碼如下:

Db::table('think_user')
    ->where('status',1)
    ->order('create_time')
    ->limit(10)
    ->select();

這里的whereorderlimit方法就被稱之為鏈式操作方法,除了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 用於設置分表信息 數組 字符串

 

所有的連貫操作都返回當前的模型實例對象(this),其中帶*標識的表示支持多次調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM