鏈?zhǔn)讲僮?

數(shù)據(jù)庫提供的鏈?zhǔn)讲僮鞣椒ǎ梢杂行У奶岣邤?shù)據(jù)存取的代碼清晰度和開發(fā)效率,并且支持所有的CURD操作。

使用也比較簡單,假如我們現(xiàn)在要查詢一個(gè)User表的滿足狀態(tài)為1的前10條記錄,并希望按照用戶的創(chuàng)建時(shí)間排序 ,代碼如下:

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

這里的where、orderlimit方法就被稱之為鏈?zhǔn)讲僮鞣椒?,除了select方法必須放到最后一個(gè)外(因?yàn)閟elect方法并不是鏈?zhǔn)讲僮鞣椒ǎ?,鏈?zhǔn)讲僮鞯姆椒ㄕ{(diào)用順序沒有先后,例如,下面的代碼和上面的等效:

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

其實(shí)不僅僅是查詢方法可以使用連貫操作,包括所有的CURD方法都可以使用,例如:

Db::table('think_user')
    ->where('id',1)
    ->field('id,name,email')
    ->find(); 
Db::table('think_user')
    ->where('status',1)
    ->where('id',1)
    ->delete();

鏈?zhǔn)讲僮髟谕瓿刹樵兒髸詣忧蹇真準(zhǔn)讲僮鞯乃袀髦怠:喍灾?,鏈?zhǔn)讲僮鞯慕Y(jié)果不會帶入后面的其它查詢。

系統(tǒng)支持的鏈?zhǔn)讲僮鞣椒ㄓ校?/p>

連貫操作 作用 支持的參數(shù)類型
where* 用于AND查詢 字符串、數(shù)組和對象
whereOr* 用于OR查詢 字符串、數(shù)組和對象
wheretime* 用于時(shí)間日期的快捷查詢 字符串
table 用于定義要操作的數(shù)據(jù)表名稱 字符串和數(shù)組
alias 用于給當(dāng)前數(shù)據(jù)表定義別名 字符串
field* 用于定義要查詢的字段(支持字段排除) 字符串和數(shù)組
order* 用于對結(jié)果排序 字符串和數(shù)組
limit 用于限制查詢結(jié)果數(shù)量 字符串和數(shù)字
page 用于查詢分頁(內(nèi)部會轉(zhuǎn)換成limit) 字符串和數(shù)字
group 用于對查詢的group支持 字符串
having 用于對查詢的having支持 字符串
join* 用于對查詢的join支持 字符串和數(shù)組
union* 用于對查詢的union支持 字符串、數(shù)組和對象
view* 用于視圖查詢 字符串、數(shù)組
distinct 用于查詢的distinct支持 布爾值
lock 用于數(shù)據(jù)庫的鎖機(jī)制 布爾值
cache 用于查詢緩存 支持多個(gè)參數(shù)
relation* 用于關(guān)聯(lián)查詢 字符串
with* 用于關(guān)聯(lián)預(yù)載入 字符串、數(shù)組
bind* 用于數(shù)據(jù)綁定操作 數(shù)組或多個(gè)參數(shù)
comment 用于SQL注釋 字符串
force 用于數(shù)據(jù)集的強(qiáng)制索引 字符串
master 用于設(shè)置主服務(wù)器讀取數(shù)據(jù) 布爾值
strict 用于設(shè)置是否嚴(yán)格檢測字段名是否存在 布爾值
sequence 用于設(shè)置Pgsql的自增序列名 字符串
failException 用于設(shè)置沒有查詢到數(shù)據(jù)是否拋出異常 布爾值
partition 用于設(shè)置分表信息 數(shù)組 字符串

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

文檔最后更新時(shí)間:2018-04-26 09:31:36

文檔
目錄

深色
模式

切換
寬度