Rumah >rangka kerja php >Laravel >Analisis ringkas tentang cara menggunakan kaedah wherehas dalam laravel

Analisis ringkas tentang cara menggunakan kaedah wherehas dalam laravel

PHPz
PHPzasal
2023-04-14 15:42:482687semak imbas

Laravel ialah rangka kerja PHP yang sangat popular dengan banyak fungsi dan ciri yang berkuasa. Antaranya, Laravel's Eloquent ORM (Object-Relational Mapping) adalah komponen yang sangat penting. ORM yang fasih membolehkan kami mengendalikan pangkalan data dalam cara berorientasikan objek dan merupakan salah satu teras Laravel. Dalam Eloquent ORM, kaedah whereHas ialah kaedah yang sangat biasa digunakan Mari kita perkenalkan penggunaan kaedah ini secara terperinci.

  1. Apakah kaedah whereHas?

kaedah whereHas ialah kaedah pertanyaan yang disediakan oleh Eloquent ORM, yang digunakan untuk menapis model dengan perhubungan yang berkaitan dalam pertanyaan. Dengan kata lain, kita boleh menggunakan kaedah whereHas untuk mencari dua model yang berkaitan.

  1. Bagaimana untuk menggunakan kaedah whereHas?

Menggunakan kaedah whereHas memerlukan pemahaman dua konsep asas: fungsi perkaitan dan penutupan. Mari kita perkenalkan secara ringkas kedua-dua konsep ini di bawah.

  • Persatuan

Dalam Eloquent ORM, kita boleh mewakili hubungan antara dua model melalui persatuan. Biasanya terdapat empat jenis perhubungan persatuan: satu-dengan-satu (mempunyaiSatu, kepunyaanKepada), satu-ke-banyak (mempunyaiRamai, kepunyaan), ramai-dengan-satu (memilikiSatu, kepunyaan) dan ramai-ke-banyak (milikBanyak) . Kita perlu mentakrifkan hubungan perkaitan melalui kaedah perhubungan dalam definisi model.

  • Fungsi penutupan

Apabila menggunakan kaedah whereHas, kita perlu meneruskan fungsi penutupan untuk menapis model berkaitan selanjutnya. Fungsi penutupan boleh menerima tika Pembina Pertanyaan sebagai parameter dan kita boleh menggunakan tika ini dalam badan fungsi untuk menapis model selanjutnya.

Berikut ialah sintaks asas kaedah whereHas:

$field = '关联模型的属性名';
$value = '要查询的值';

$models = Model::whereHas('关联关系方法名', function($query) use ($field, $value) {
    $query->where($field, '=', $value);
})->get();

Antaranya, $field dan $value ialah nama atribut dan nilai atribut model berkaitan yang kami mahu pertanyaan.

  1. Penggunaan lanjutan

Selain penggunaan asas di atas, kaedah whereHas juga menyokong beberapa penggunaan lanjutan, membolehkan kami menggunakannya dengan lebih fleksibel.

  • Semak sama ada model yang berkaitan wujud

Kita boleh menggunakan kaedah whereHas untuk menentukan sama ada model dengan perhubungan berkaitan tertentu wujud. Dalam kes ini, kita boleh menggunakan parameter kedua kaedah whereHas untuk menentukan nilai malar benar, supaya kita hanya boleh menyemak sama ada model yang berkaitan wujud tanpa menanyakan lagi rekod model yang berkaitan.

$models = Model::whereHas('关联关系方法名', true)->get();
  • Semak sama ada model yang berkaitan memenuhi berbilang syarat

Kadangkala kita mungkin perlu menyemak sama ada model yang berkaitan memenuhi berbilang syarat. Pada masa ini, kita boleh menyarangkan berbilang keadaan dalam fungsi penutupan untuk menapis lagi model berkaitan.

$field1 = '关联模型的属性名1';
$value1 = '要查询的值1';
$field2 = '关联模型的属性名2';
$value2 = '要查询的值2';

$models = Model::whereHas('关联关系方法名', function($query) use ($field1, $value1, $field2, $value2) {
    $query->where($field1, '=', $value1)
          ->where($field2, '=', $value2);
})->get();

Dalam kod di atas, kami menggunakan dua keadaan dalam fungsi penutupan untuk menyemak sama ada kedua-dua model yang berkaitan memenuhi syarat yang ditentukan.

  1. Ringkasan

Dalam ORM Fasih Laravel, kaedah whereHas ialah kaedah yang sangat praktikal. Melalui kaedah whereHas, kita boleh mencari dua model dengan perhubungan yang berkaitan dan melakukan penapisan selanjutnya. Pada masa yang sama, kaedah whereHas juga menyokong beberapa penggunaan lanjutan, seperti menyemak sama ada model yang berkaitan wujud, menyemak sama ada model yang berkaitan memenuhi berbilang syarat, dsb. Mahir dalam penggunaan kaedah whereHas akan sangat membantu apabila kami melaksanakan operasi pangkalan data dalam Laravel.

Atas ialah kandungan terperinci Analisis ringkas tentang cara menggunakan kaedah wherehas dalam laravel. 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