cari
Rumahrangka kerja phpThinkPHPCara menggunakan syarat untuk menapis pertanyaan berkaitan thinkphp

Apabila membangun dengan thinkphp, anda sering menghadapi situasi di mana anda perlu menggunakan pertanyaan berkaitan. Apabila melakukan pertanyaan berkaitan, syarat adalah perkara yang sering kita perlu beri perhatian.

Artikel ini akan memperkenalkan cara menggunakan syarat untuk menapis apabila melakukan pertanyaan berkaitan dalam thinkphp.

  1. Tentukan perkaitan dalam model

Apabila melakukan pertanyaan berkaitan, anda perlu mentakrifkan perkaitan dalam model terlebih dahulu. Di sini kita mengambil perhubungan satu dengan satu sebagai contoh. Mula-mula, tentukan model Pengguna, yang mengandungi perkaitan hasOne:

class User extends Model
{
    protected $table = 'users';

    public function profile()
    {
        return $this->hasOne('Profile');
    }
}

Dalam kod di atas, kami mentakrifkan profil bernama persatuan hasOne, yang dikaitkan dengan model bernama Profil . Dalam model Profil, anda perlu mentakrifkan perkaitan belongsTo:

class Profile extends Model
{
    protected $table = 'profiles';

    public function user()
    {
        return $this->belongsTo('User');
    }
}

Dalam kod di atas, kami mentakrifkan perkaitan belongsTo bernama pengguna, yang dikaitkan dengan model bernama Pengguna.

  1. Lakukan pertanyaan berkaitan

Selepas menentukan perhubungan perkaitan, kami boleh melakukan pertanyaan berkaitan dalam pengawal. Pernyataan pertanyaan adalah seperti berikut:

$users = User::with(['profile' => function($query){
    $query->where('age', '>=', 18);
}])->select();

Dalam kod di atas, kami menggunakan kaedah dengan untuk melaksanakan pertanyaan berkaitan. Antaranya, parameter pertama melepasi perkaitan yang ingin kami tanyakan, dan parameter kedua ialah fungsi panggil balik yang digunakan untuk mengenakan beberapa syarat tambahan pada pertanyaan ini.

Dalam kod di atas, kami menggunakan kaedah where untuk menapis atribut umur model profil dan hanya rekod pertanyaan yang umurnya lebih besar daripada atau sama dengan 18 tahun.

  1. Syarat operasi berantai

Selain menghantar fungsi panggil balik dalam kaedah dengan untuk mengehadkan syarat pertanyaan, anda juga boleh melaksanakan keadaan operasi berantai semasa melakukan pertanyaan berkaitan. . Sebagai contoh, kod berikut melaksanakan pertanyaan untuk pengguna yang umurnya lebih daripada atau sama dengan 18 dalam jadual pengguna dan untuk rekod yang alamatnya tidak kosong dalam rekod profil mereka:

$users = User::where('age', '>=', 18)
             ->with(['profile' => function($query){
                 $query->where('address', '', '');
             }])
             ->select();

Dalam perkara di atas kod, kami mula-mula lulus Kaedah where menyekat syarat pertanyaan model Pengguna. Kemudian, kami menggunakan fungsi panggil balik dalam kaedah dengan untuk menyekat syarat pertanyaan model profil.

  1. Ringkasan

Apabila melakukan pertanyaan berkaitan dalam thinkphp, kita boleh menggunakan kaedah with untuk melaksanakan pertanyaan berkaitan, dan menghantar fungsi panggil balik atau syarat operasi rantai kepada hasil Pertanyaan boleh selanjutnya dihadkan dan ditapis.

Sudah tentu, apabila melakukan pertanyaan berkaitan, kami juga perlu memberi perhatian kepada beberapa butiran lain, seperti takrifan perhubungan persatuan, penulisan pernyataan pertanyaan, dsb. Dalam proses pembangunan sebenar, kita perlu melakukan operasi yang fleksibel mengikut keadaan tertentu.

Atas ialah kandungan terperinci Cara menggunakan syarat untuk menapis pertanyaan berkaitan thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma