Datensatz (Abfrage-Generator 19)


Das Abfrageergebnis der Datenbank ist ebenfalls ein Datensatz. Standardmäßig ist der Datensatztyp ein zweidimensionales Array, es kann jedoch die Rückgabe eines Datensatzobjekts mithilfe der fetchCollection-Methode unterstützen:

// 获取数据集
$users = Db::name('user')->fetchCollection()->select();
// 遍历数据集
foreach($users as $user){
    echo $user['name'];
    echo $user['id'];
}

Das zurückgegebene Datensatzobjekt ist thinkCollection, das die gleiche Verwendung wie Arrays bietet und außerdem einige zusätzliche Methoden kapselt.

Führen Sie eine Datensatzabfrage im Modell durch und alle Datensatzobjekte werden zurückgegeben, es wird jedoch die thinkmodelCollection-Klasse (geerbt von thinkCollection) verwendet, die Verwendung ist jedoch konsistent.

Sie können Arrays direkt verwenden, um Datensatzobjekte zu bedienen, zum Beispiel:

// 获取数据集
$users = Db::name('user')->fetchCollection()->select();
// 直接操作第一个元素
$item  = $users[0];
// 获取数据集记录数
$count = count($users);
// 遍历数据集
foreach($users as $user){
    echo $user['name'];
    echo $user['id'];
}

Die fetchCollection-Methode unterstützt auch die Übergabe des Namens der benutzerdefinierten Sammlungsklasse (muss thinkCollection erben).

Es ist zu beachten, dass Sie, wenn Sie beurteilen möchten, ob der Datensatz leer ist, leer nicht direkt zur Beurteilung verwenden können, sondern zur Beurteilung die isEmpty-Methode des Datensatzobjekts verwenden müssen, zum Beispiel:

$users = Db::name('user')->fetchCollection()->select();
if($users->isEmpty()){
    echo '数据集为空';
}

Sammlungsklasse enthält die folgenden Hauptmethoden:

方法描述
isEmpty是否为空
toArray转换为数组
all所有数据
merge合并其它数据
diff比较数组,返回差集
flip交换数据中的键和值
intersect比较数组,返回交集
keys返回数据中的所有键名
pop删除数据中的最后一个元素
shift删除数据中的第一个元素
unshift在数据开头插入一个元素
push在结尾插入一个元素
reduce通过使用用户自定义函数,以字符串返回数组
reverse数据倒序重排
chunk数据分隔为多个数据块
each给数据的每个元素执行回调
filter用回调函数过滤数据中的元素
column返回数据中的指定列
sort对数据排序
order指定字段排序
shuffle将数据打乱
slice截取数据中的一部分
map用回调函数处理数组中的元素
where根据字段条件过滤数组中的元素
whereLikeLike查询过滤元素
whereNotLikeNot Like过滤元素
whereInIN查询过滤数组中的元素
whereNotInNot IN查询过滤数组中的元素
whereBetweenBetween查询过滤数组中的元素
whereNotBetweenNot Between查询过滤数组中的元素