Laravel ialah rangka kerja pembangunan PHP yang popular, di mana menanyakan pangkalan data adalah salah satu operasi yang kerap digunakan. Dalam proses pembangunan sebenar, kadangkala perlu mengulangi hasil pertanyaan untuk memaparkan keputusan atau memprosesnya selanjutnya. Artikel ini akan memperkenalkan cara menggelungkan hasil pertanyaan dalam Laravel.
1. Data pertanyaan
Sebelum mula mengulang untuk menanyakan keputusan, anda perlu menanyakan data terlebih dahulu. Laravel menyediakan dua kaedah pertanyaan: Eloquent ORM dan Query Builder. Eloquent ORM ialah pemetaan hubungan objek yang boleh memetakan jadual dalam pangkalan data menjadi objek, menjadikannya mudah untuk mengendalikan pangkalan data. Query Builder juga merupakan kaedah pertanyaan Ia adalah corak pembina yang membina pernyataan pertanyaan SQL melalui panggilan berantai.
Mari perkenalkan cara menggunakan Eloquent ORM dan Query Builder untuk pertanyaan data.
(1) Data pertanyaan ORM yang fasih
Apabila menggunakan Eloquent ORM untuk pertanyaan data, anda perlu mentakrifkan Model yang sepadan terlebih dahulu. Model sepadan dengan jadual dalam pangkalan data Kita boleh menentukan medan, jadual berkaitan, operasi data dan kaedah lain dalam Model.
Tentukan Contoh Model:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model { // 定义对应表的名称 protected $table = 'user'; // 定义主键名称 protected $primaryKey = 'id'; // 定义可被批量赋值的字段 protected $fillable = [ 'name', 'age', 'gender' ]; // 定义关联关系等方法 }
Selepas mentakrifkan Model, anda boleh menggunakan Eloquent ORM untuk membuat pertanyaan.
Soal semua data:
$users = App\Models\User::all();
Soal satu data:
$user = App\Models\User::find(1);
Soal beberapa keping data berdasarkan syarat:
$users = App\Models\User::where('age', '>', 18)->get();
Diperlukan di sini Ambil perhatian bahawa hasil pertanyaan ORM Eloquent ialah objek Koleksi, bukan tatasusunan. Objek koleksi menyediakan banyak kaedah yang mudah untuk membantu kami memproses data.
(2) Query Builder untuk pertanyaan data
Menggunakan Query Builder untuk pertanyaan data, kami terus memanggil kaedah kelas DB. Apabila menggunakan Query Builder, anda perlu terlebih dahulu memanggil kaedah jadual kelas DB untuk menentukan jadual pertanyaan, dan kemudian anda boleh membina pernyataan pertanyaan SQL melalui panggilan berantai.
Soal semua data:
$users = DB::table('user')->get();
Soal satu data:
$user = DB::table('user')->where('id', '=', 1)->first();
Soal berbilang data berdasarkan syarat:
$users = DB::table('user')->where('age', '>', 18)->get();
2. Gelung melalui hasil pertanyaan
Selepas pertanyaan data, kita boleh gelung melalui hasil pertanyaan. Anda boleh menggunakan gelung foreach atau gelung untuk melintasi.
(1) Gunakan gelung foreach
Apabila menggunakan gelung foreach, anda boleh terus gelung melalui hasil pertanyaan (Objek koleksi ditanya oleh Eloquent ORM atau objek stdClass yang ditanya oleh Query Builder).
Contoh ORM yang fasih:
$users = App\Models\User::all(); foreach($users as $user) { echo $user->name; }
Contoh Pembina Pertanyaan:
$users = DB::table('user')->get(); foreach($users as $user) { echo $user->name; }
(2) Menggunakan gelung for
Apabila menggunakan gelung for, anda perlu Mula-mula menukar hasil pertanyaan ke dalam tatasusunan, dan kemudian melintasinya.
Contoh ORM Fasih:
$users = App\Models\User::all()->toArray(); $total = count($users); for($i = 0; $i < $total; ++$i) { echo $users[$i]['name']; }
Contoh Pembina Pertanyaan:
$users = DB::table('user')->get()->toArray(); $total = count($users); for($i = 0; $i < $total; ++$i) { echo $users[$i]->name; }
Ringkasan
Dalam artikel ini, kami memperkenalkan ORM Eloquent dalam Laravel dan Pembina Pertanyaan untuk menanyakan data dan menyediakan kod sampel untuk melintasi menggunakan gelung foreach dan untuk gelung. Dalam proses pembangunan sebenar, anda boleh memilih kaedah yang sesuai untuk pertanyaan dan traversal data mengikut keperluan perniagaan tertentu.
Atas ialah kandungan terperinci Penjelasan terperinci tentang kaedah menggelung keputusan pertanyaan dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!