データセット (クエリ ビルダー 19)
データベースのクエリ結果もデータ セットです。デフォルトでは、データ セット タイプは 2 次元配列ですが、fetchCollection メソッドを使用してデータ セット オブジェクトを返すこともサポートできます。
// 获取数据集 $users = Db::name('user')->fetchCollection()->select(); // 遍历数据集 foreach($users as $user){ echo $user['name']; echo $user['id']; }
返されるデータ セット オブジェクトは think\Collection で、配列と同じ使用法を提供し、いくつかの追加メソッドもカプセル化します。
モデルでデータ セット クエリを実行すると、すべてのデータ セット オブジェクトが返されますが、think\model\Collection クラス (think\Collection から継承) が使用されますが、使用方法は一貫しています。
配列を直接使用してデータ セット オブジェクトを操作できます。例:
// 获取数据集 $users = Db::name('user')->fetchCollection()->select(); // 直接操作第一个元素 $item = $users[0]; // 获取数据集记录数 $count = count($users); // 遍历数据集 foreach($users as $user){ echo $user['name']; echo $user['id']; }
fetchCollection メソッドは、カスタム コレクション クラス名の受け渡しもサポートしています (think\Collection を継承する必要があります)。
データセットが空かどうかを判定したい場合、emptyを直接使用して判定することはできず、データセットオブジェクトのisEmptyメソッドを使用して判定する必要があることに注意してください。例:
$users = Db::name('user')->fetchCollection()->select(); if($users->isEmpty()){ echo '数据集为空'; }
Collection クラスには次の主なメソッドが含まれます:
method | description |
---|---|
#isEmpty | 空ですか |
toArray | 配列に変換 |
all | すべてのデータ |
merge | 他のデータをマージ |
diff | 配列を比較差分を返します |
flip | データ内のキーと値を交換します |
配列を比較して交差部分を返します | |
#データ内のすべてのキー名を返します | ##pop |
shift | |
unshift | |
push | |
reduce | |
reverse | |
chunk | |
各 | |
filter | |
column | |
#sort | |
##order | ##並べ替えるフィールドを指定 |
データをシャッフルする | |
データの一部をインターセプト | |
コールバック関数を使用して配列内の要素を処理します。 | |
配列ベースの要素をフィルタリングします。フィールド条件で | |
Like クエリ フィルター要素 | |
Not Like フィルター要素 | |
IN クエリ フィルター配列要素 | |
クエリ フィルター配列内の Not IN 要素 | |
Between クエリ フィルター配列の要素 | |
Not Between クエリ内の要素フィルター配列 | |