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 | 根据字段条件过滤数组中的元素 |
whereLike | Like查询过滤元素 |
whereNotLike | Not Like过滤元素 |
whereIn | IN查询过滤数组中的元素 |
whereNotIn | Not IN查询过滤数组中的元素 |
whereBetween | Between查询过滤数组中的元素 |
whereNotBetween | Not Between查询过滤数组中的元素 |