數(shù)據(jù)集

版本 功能調(diào)整
5.0.5 原生查詢不支持返回?cái)?shù)據(jù)集對(duì)象

數(shù)據(jù)庫(kù)的查詢結(jié)果也就是數(shù)據(jù)集,默認(rèn)的配置下,數(shù)據(jù)集的類型是一個(gè)二維數(shù)組,我們可以配置成數(shù)據(jù)集類,就可以支持對(duì)數(shù)據(jù)集更多的對(duì)象化操作,需要使用數(shù)據(jù)集類功能,可以配置數(shù)據(jù)庫(kù)的resultset_type參數(shù)如下:

return [
    // 數(shù)據(jù)庫(kù)類型
    'type'        => 'mysql',
    // 數(shù)據(jù)庫(kù)連接DSN配置
    'dsn'         => '',
    // 服務(wù)器地址
    'hostname'    => '127.0.0.1',
    // 數(shù)據(jù)庫(kù)名
    'database'    => 'thinkphp',
    // 數(shù)據(jù)庫(kù)用戶名
    'username'    => 'root',
    // 數(shù)據(jù)庫(kù)密碼
    'password'    => '',
    // 數(shù)據(jù)庫(kù)連接端口
    'hostport'    => '',
    // 數(shù)據(jù)庫(kù)連接參數(shù)
    'params'      => [],
    // 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
    'charset'     => 'utf8',
    // 數(shù)據(jù)庫(kù)表前綴
    'prefix'      => 'think_',
    // 數(shù)據(jù)集返回類型
    'resultset_type' => 'collection',
];

返回的數(shù)據(jù)集對(duì)象是think\Collection,提供了和數(shù)組無(wú)差別用法,并且另外封裝了一些額外的方法。

可以直接使用數(shù)組的方式操作數(shù)據(jù)集對(duì)象,例如:

// 獲取數(shù)據(jù)集
$users = Db::name('user')->select();
// 直接操作第一個(gè)元素
$item  = $users[0];
// 獲取數(shù)據(jù)集記錄數(shù)
$count = count($users);
// 遍歷數(shù)據(jù)集
foreach($users as $user){
    echo $user['name'];
    echo $user['id'];
}

需要注意的是,如果要判斷數(shù)據(jù)集是否為空,不能直接使用empty判斷,而必須使用數(shù)據(jù)集對(duì)象的isEmpty方法判斷,例如:

$users = Db::name('user')->select();
if($users->isEmpty()){
    echo '數(shù)據(jù)集為空';
}

Collection類包含了下列主要方法:

方法 描述
isEmpty 是否為空
toArray 轉(zhuǎn)換為數(shù)組
all 所有數(shù)據(jù)
merge 合并其它數(shù)據(jù)
diff 比較數(shù)組,返回差集
flip 交換數(shù)據(jù)中的鍵和值
intersect 比較數(shù)組,返回交集
keys 返回?cái)?shù)據(jù)中的所有鍵名
pop 刪除數(shù)據(jù)中的最后一個(gè)元素
shift 刪除數(shù)據(jù)中的第一個(gè)元素
unshift 在數(shù)據(jù)開頭插入一個(gè)元素
reduce 通過(guò)使用用戶自定義函數(shù),以字符串返回?cái)?shù)組
reverse 數(shù)據(jù)倒序重排
chunk 數(shù)據(jù)分隔為多個(gè)數(shù)據(jù)塊
each 給數(shù)據(jù)的每個(gè)元素執(zhí)行回調(diào)
filter 用回調(diào)函數(shù)過(guò)濾數(shù)據(jù)中的元素
column 返回?cái)?shù)據(jù)中的指定列
sort 對(duì)數(shù)據(jù)排序
shuffle 將數(shù)據(jù)打亂
slice 截取數(shù)據(jù)中的一部分

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

文檔
目錄

深色
模式

切換
寬度