Set Data (pembina pertanyaan 19)


Hasil pertanyaan pangkalan data juga ialah set data Secara lalai, jenis set data ialah tatasusunan dua dimensi, tetapi ia boleh menyokong pemulangan objek set data Gunakan kaedah fetchCollection:

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

Data yang dikembalikan set objek ialah thinkCollection Ia menyediakan penggunaan yang sama seperti tatasusunan, dan juga merangkum beberapa kaedah tambahan.

Lakukan pertanyaan set data dalam model, semua objek set data akan dikembalikan, tetapi kelas thinkmodelCollection (diwarisi daripada thinkCollection) digunakan, tetapi penggunaannya adalah konsisten.

Objek set data boleh dimanipulasi terus menggunakan tatasusunan, contohnya:

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

Kaedah fetchCollection juga menyokong pemindahan nama kelas koleksi tersuai (mesti mewarisi thinkCollection).

Perlu diingat bahawa jika anda ingin menilai sama ada set data kosong, anda tidak boleh terus menggunakan kosong untuk menilai, tetapi mesti menggunakan kaedah isEmpty objek set data untuk menilai, contohnya:

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

Kelas Koleksi mengandungi kaedah utama berikut:

semuasemua data gabungkanGabungkan data lain perbezaanBanding tatasusunan, pulangkan perbezaanflipTukar kunci dan nilai dalam data persimpangan Kekunci reverse dalam susunan terbalikData diasingkan kepada berbilang ketulan dataLaksanakan panggilan balik untuk setiap elemen data datalajurKembalikan lajur yang ditentukan dalam dataisih Isih data IsihwhereNotLikewhereInwhereNotIn tapisAntara pertanyaan untuk menapis elemen dalam tatasusunanBukan Antara pertanyaan untuk menapis elemen dalam tatasusunan
KaedahPenerangan
isKosongAdakah kosong
kepada array
persimpangan
Masukkan elemen pada permulaan data
tolakdi penghujung Masukkan elemen
reduceDengan menggunakan fungsi yang ditentukan pengguna, kembalikan tatasusunan sebagai rentetan
reverse
chunk
setiap
menapis semula elemen untuk penapis balik
urutan penyisihan medan
Specify Kocok data
sliceIntercept sebahagian daripada data
Map use fungs elemen penapis
Tidak Seperti elemen penapis
IN pertanyaan elemen penapis dalam tatasusunan
IN elemen dalam tatasusunan di antara
whereNotBetween