データセット (クエリ ビルダー 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 クラスには次の主なメソッドが含まれます:

##intersect配列を比較して交差部分を返しますkeys##popデータの最後の要素を削除しますshiftデータの最初の要素を削除しますunshiftデータの先頭に要素を挿入push最後に要素を挿入reduce #ユーザー定義関数を使用して、文字列を配列に返すデータを逆順に並べ替えますデータは複数のデータブロックに分割されますデータの各要素に対してコールバックを実行しますUse コールバック関数はデータ内の要素をフィルターします。指定された列を返します。データデータを並べ替える##order#shuffleデータをシャッフルするsliceデータの一部をインターセプトmapコールバック関数を使用して配列内の要素を処理します。where配列ベースの要素をフィルタリングします。フィールド条件で #whereLikeLike クエリ フィルター要素 whereNotLikeNot Like フィルター要素whereInIN クエリ フィルター配列要素whereNotInクエリ フィルター配列内の Not IN 要素 whereBetweenBetween クエリ フィルター配列の要素 whereNotBetweenNot Between クエリ内の要素フィルター配列
methoddescription
#isEmpty空ですか
toArray配列に変換
allすべてのデータ
merge他のデータをマージ
diff配列を比較差分を返します
flipデータ内のキーと値を交換します
#データ内のすべてのキー名を返します
reverse
chunk
filter
column
#sort
##並べ替えるフィールドを指定