Rumah > Soal Jawab > teks badan
$res=DB::select('select * from qq');
var_dump($res);
$res=DB::table('qq')->get();
var_dump($res);
Selepas menggunakan dua kaedah ini untuk membuat pertanyaan, mengapa saya mendapat tatasusunan satu dimensi dalam gambar? Mengapakah terdapat objek dalam tatasusunan satu dimensi? Apa yang kita dapat menggunakan pertanyaan asli ialah tatasusunan dua dimensi Mengapakah hasilnya bukan tatasusunan dua dimensi?
阿神2017-06-06 09:56:43
Berikut ialah versi Laravel 5.4, kerana saya tidak menggunakan versi 5.2 Laravel.
Jalankan pertanyaan SQL asli dan dapatkan set hasil dalam bentuk array Lihat dokumentasi untuk butiran.
$res = DB::select('select * from qq');
dd($res);
/*
* array:5 [▼
0 => {#388 ▶}
1 => {#399 ▶}
2 => {#400 ▶}
3 => {#401 ▶}
4 => {#402 ▶}
]
*/
Gunakan pembina pertanyaan untuk menjalankan pernyataan SQL dan mendapatkan objek Koleksi Lihat dokumentasi untuk mendapatkan butiran.
$res = DB::table('qq')->get();
dd($res);
/*
* Collection {#398 ▼
#items: array:5 [▼
0 => {#399 ▶}
1 => {#400 ▶}
2 => {#401 ▶}
3 => {#402 ▶}
4 => {#403 ▶}
]
}
*/
Apa yang anda dapat dengan menjalankan pernyataan SQL asli ialah tatasusunan satu dimensi yang dibalut dengan objek, bukan tatasusunan dua dimensi.
Apa yang anda dapat menggunakan pembina pertanyaan ialah objek Koleksi, yang juga merupakan tatasusunan satu dimensi yang membalut setiap objek. Jadi mengapa mengembalikan objek Collection, kerana ia mempunyai banyak kaedah yang berguna dan elegan terbina dalam. Sama seperti Eloquent mengembalikan objek Collection secara lalai.
淡淡烟草味2017-06-06 09:56:43
//返回数组 laravel 默认返回的为对象
$res=DB::table('qq')->get()->toarray;
dump($res);