Rumah > rangka kerja php > Laravel > Penjelasan terperinci tentang kaedah menggelung keputusan pertanyaan dalam Laravel

Penjelasan terperinci tentang kaedah menggelung keputusan pertanyaan dalam Laravel

PHPz
Lepaskan: 2023-04-06 16:53:45
asal
1579 orang telah melayarinya

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'
    ];

    // 定义关联关系等方法
}
Salin selepas log masuk

Selepas mentakrifkan Model, anda boleh menggunakan Eloquent ORM untuk membuat pertanyaan.

Soal semua data:

$users = App\Models\User::all();
Salin selepas log masuk

Soal satu data:

$user = App\Models\User::find(1);
Salin selepas log masuk

Soal beberapa keping data berdasarkan syarat:

$users = App\Models\User::where('age', '>', 18)->get();
Salin selepas log masuk

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();
Salin selepas log masuk

Soal satu data:

$user = DB::table('user')->where('id', '=', 1)->first();
Salin selepas log masuk

Soal berbilang data berdasarkan syarat:

$users = DB::table('user')->where('age', '>', 18)->get();
Salin selepas log masuk

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;
}
Salin selepas log masuk

Contoh Pembina Pertanyaan:

$users = DB::table('user')->get();
foreach($users as $user) {
    echo $user->name;
}
Salin selepas log masuk

(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][&#39;name&#39;];
}
Salin selepas log masuk

Contoh Pembina Pertanyaan:

$users = DB::table(&#39;user&#39;)->get()->toArray();
$total = count($users);
for($i = 0; $i < $total; ++$i) {
    echo $users[$i]->name;
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan