Jadual Kandungan
Gunakan WhereHas () untuk melakukan pertanyaan persatuan pelbagai meja
Perkara yang perlu diperhatikan
Meringkaskan
Rumah pembangunan bahagian belakang tutorial php Laravel Eloquent: Gunakan pertanyaan persatuan berbilang meja untuk mendapatkan senarai pengguna untuk pasukan tertentu

Laravel Eloquent: Gunakan pertanyaan persatuan berbilang meja untuk mendapatkan senarai pengguna untuk pasukan tertentu

Aug 08, 2025 pm 05:33 PM

Laravel Eloquent: Gunakan pertanyaan persatuan berbilang meja untuk mendapatkan senarai pengguna untuk pasukan tertentu

Dokumen ini bertujuan untuk membimbing pemaju tentang cara menggunakan Laravel Fasih Orm untuk melakukan pertanyaan persatuan multi-meja untuk mendapatkan senarai pengguna untuk pasukan tertentu. Kami akan menggunakan kaedah WhereHas (), menggabungkan pengguna, request_register dan tiga jadual data, untuk merealisasikan fungsi penapisan pengguna berdasarkan Team_ID, dan menyediakan kod sampel dan langkah berjaga -jaga untuk membantu anda memahami dan memohon fungsi pertanyaan yang berkaitan dengan Eloquent.

Gunakan WhereHas () untuk melakukan pertanyaan persatuan pelbagai meja

Di Laravel, kaedah WhereHas () adalah alat yang berkuasa untuk menanyakan data yang wujud dengan hubungan tertentu. WhereHas () dapat mempermudah logik pertanyaan kita apabila kita perlu menapis data jadual utama berdasarkan syarat -syarat dalam jadual yang berkaitan.

Katakan kami mempunyai tiga jadual: pengguna, request_register dan pasukan, dan struktur mereka adalah seperti berikut:

Jadual Pengguna

Nama Senarai Jenis data menggambarkan
user_id Int ID Pengguna
name_user Varchar nama pengguna
kenalan Varchar Maklumat hubungan
request_id Int Permintaan ID

Jadual Request_Register

Nama Senarai Jenis data menggambarkan
request_id Int Permintaan ID
user_id Int ID Pengguna
Team_id Int ID Pasukan

Jadual pasukan

Nama Senarai Jenis data menggambarkan
Team_id Int ID Pasukan
name_team Varchar Nama Pasukan

Matlamat kami adalah untuk mendapatkan maklumat mengenai semua pengguna yang tergolong dalam pasukan tertentu (mis. Team_id adalah 1).

Pertama, kita perlu menentukan hubungan dengan model RequestRegister dalam model pengguna:

 // app/model/user.php

Model Namespace App \ Models;

Gunakan Illuminate \ Database \ Eloquent \ Model;

Pengguna kelas memanjangkan model
{
    permintaan awam permintaan_register ()
    {
        kembali $ this-> hasone (requestRegister :: class, 'user_id', 'user_id');
    }
}

Kemudian, tentukan hubungan dengan model pasukan dalam model RequestRegister:

 // App/Model/RequestRegister.php

Model Namespace App \ Models;

Gunakan Illuminate \ Database \ Eloquent \ Model;

Kelas RequestRegister memanjangkan model
{
    dilindungi $ table = 'request_register'; // Pastikan untuk menentukan nama Jadual Fungsi Awam ()
    {
        kembali $ this-> milik (pasukan :: kelas, 'team_id', 'team_id');
    }

    Pengguna Fungsi Awam ()
    {
        kembali $ this-> dandan (pengguna :: kelas, 'user_id', 'user_id');
    }
}

Akhirnya, tentukan hubungan dengan model RequestRegister dalam model pasukan:

 // App/Model/Team.php

Model Namespace App \ Models;

Gunakan Illuminate \ Database \ Eloquent \ Model;

Pasukan Kelas Memperluas Model
{
    dilindungi $ Table = 'Teams'; // Pastikan untuk menentukan nama jadual fungsi awam Request_Registers ()
    {
        kembali $ this-> hasmany (requestRegister :: class, 'Team_id', 'Team_id');
    }
}

Seterusnya, kita boleh menggunakan kaedah WhereHas () untuk menanyakan pengguna milik pasukan tertentu:

 Gunakan App \ Models \ User;
Gunakan Illuminate \ Database \ Eloquent \ Builder;

$ TeamId = 1; // Katakan kami ingin menanyakan pengguna pasukan dengan Team_ID dari 1 $ pengguna = user :: whereHas ('request_register', function (pembina $ query) use ($ TeamId) {
    $ query-> where ('team_id', $ teamId);
})-> mendapatkan ();

// $ pengguna kini mengandungi maklumat mengenai semua pengguna yang Team_ID adalah 1 // anda boleh melengkung melalui pengguna $ untuk mendapatkan maklumat terperinci setiap pengguna foreach ($ pengguna sebagai pengguna $) {
    echo "ID Pengguna:". $ user-> user_id. ", Nama:". $ user-> name_user. ", Kenalan:". $ user-> kenalan. "<br>";
}

Kod ini mula -mula mentakrifkan TeamID untuk pertanyaan. Kemudian, gunakan pengguna :: di mana ('request_register', ...) untuk menapis jadual pengguna, dengan syarat hubungan dengan request_register wujud dan bahawa team_id dalam jadual request_register adalah sama dengan $ TeamId. Kaedah GET () digunakan untuk mendapatkan semua koleksi pengguna yang memenuhi kriteria.

Perkara yang perlu diperhatikan

  • Definisi hubungan: Pastikan hubungan antara jadual ditakrifkan dengan betul dalam model. Ini adalah penting untuk kaedah WhereHas () untuk berfungsi dengan baik.
  • Prestasi: Untuk dataset yang besar, pertanyaan persatuan multi-meja boleh menjejaskan prestasi. Pertimbangkan dengan menggunakan kaedah dengan () untuk memuatkan data yang berkaitan, atau gunakan pertanyaan SQL asli untuk pengoptimuman.
  • Nama Jadual: Pastikan nama jadual yang betul ditentukan dalam model, terutamanya jika nama jadual bukan bentuk jamak nama model.
  • Indeks: Mewujudkan indeks pada medan yang sering digunakan untuk pertanyaan dapat meningkatkan prestasi pertanyaan dengan ketara.

Meringkaskan

Kaedah WhereHas () adalah alat yang sangat berguna dalam Laravel fasih yang membolehkan pertanyaan persatuan multi-meja yang mudah. Dengan betul menentukan hubungan antara model dan menggabungkan kaedah WherHas (), kita boleh dengan mudah menapis data jadual utama berdasarkan keadaan dalam jadual persatuan. Dalam aplikasi praktikal, adalah perlu untuk memberi perhatian kepada ketepatan pengoptimuman prestasi dan definisi hubungan untuk memastikan kecekapan pertanyaan dan ketepatan data.

Atas ialah kandungan terperinci Laravel Eloquent: Gunakan pertanyaan persatuan berbilang meja untuk mendapatkan senarai pengguna untuk pasukan tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

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.

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

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

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

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara bekerja dengan tatasusunan dalam php Cara bekerja dengan tatasusunan dalam php Aug 20, 2025 pm 07:01 PM

Phparrayshandledatacollectionsefficientlyusingindexedorassociativestructures; theareCreatedWithArray () atau [], AccessedViAkeys, ModifiedByAssignment, iteratedWithForeach, danManipulatedingingingingFuntionsLikeCount ()

WordPress Custom Artikel Jenis Butang Popup Borang dengan Tutorial Penyerahan Ajax WordPress Custom Artikel Jenis Butang Popup Borang dengan Tutorial Penyerahan Ajax Aug 08, 2025 pm 11:09 PM

Tutorial ini memberikan arahan terperinci tentang cara menambah butang "Hantar Petikan" kepada setiap artikel dalam WordPress dalam senarai jenis artikel tersuai. Selepas mengklik, borang HTML tersuai dengan ID artikel muncul, dan data borang adalah penyerahan Ajax dan paparan mesej kejayaan. Kandungan ini meliputi tetapan pop timbul UI JQuery UI, pemindahan data dinamik, pemprosesan permintaan AJAX, serta back-end WordPress Ajax Hook dan pelaksanaan PHP pemprosesan data, memastikan fungsi lengkap, pengalaman pengguna yang selamat dan baik.

Bandingkan dan kontras ciri -ciri PHP, kelas abstrak, dan antara muka dengan kes penggunaan praktikal. Bandingkan dan kontras ciri -ciri PHP, kelas abstrak, dan antara muka dengan kes penggunaan praktikal. Aug 11, 2025 pm 11:17 PM

Useinterfacestodefinecontractsforunrelatedclasses,ensuringtheyimplementspecificmethods;2.Useabstractclassestosharecommonlogicamongrelatedclasseswhileenforcinginheritance;3.Usetraitstoreuseutilitycodeacrossunrelatedclasseswithoutinheritance,promotingD

Cara menggunakan pemboleh ubah $ _cookie dalam php Cara menggunakan pemboleh ubah $ _cookie dalam php Aug 20, 2025 pm 07:00 PM

$ _Cookieisaphpsuperglobalforaccessingcookiessentbrowser; cookiesareSetusingsetCookie () sebelum ini, readvia $ _cooKie ['name'], updatedbyresendingwithnewvalues, anddeletedbysettingexpadexpadexpoadexpadexpadexpadexpadexpadexpoadtimestamp, denganSecureStorsiredTimeShamp, denganSecureStyCoREdingB, denganSsecureStoStoStAb

Huraikan corak reka bentuk pemerhati dan pelaksanaannya dalam PHP. Huraikan corak reka bentuk pemerhati dan pelaksanaannya dalam PHP. Aug 15, 2025 pm 01:54 PM

Theobserverdesignpatternenablesautomaticnotificationofdependentobjectswhenasubject'sstatechanges.1) itdefinaone-to-manydependencybetweenobjects; 2) thesubjectmaintainsalistofobserversandnotifemmoninterfoninterface;

WordPress Borang Popup Butang Artikel Kustom Dengan Panduan Penyerahan Ajax WordPress Borang Popup Butang Artikel Kustom Dengan Panduan Penyerahan Ajax Aug 08, 2025 pm 11:06 PM

Tutorial ini memperincikan cara menambah butang kutipan hantar ke item senarai setiap jenis pos tersuai (seperti "hartanah") dalam WordPress, dan borang HTML tersuai dengan ID pos tertentu muncul selepas mengkliknya. Artikel ini akan meliputi cara membuat popup modal menggunakan dialog JQuery UI, secara dinamik lulus ID artikel melalui atribut data, dan menggunakan mekanisme WordPress AJAX untuk melaksanakan penyerahan asynchronous borang, sambil memproses fail memuat naik dan memaparkan hasil penyerahan, dengan itu memberikan pengalaman pengguna yang lancar.

Terangkan strategi pengindeksan pangkalan data (mis., B-Tree, teks penuh) untuk aplikasi PHP yang disokong MySQL. Terangkan strategi pengindeksan pangkalan data (mis., B-Tree, teks penuh) untuk aplikasi PHP yang disokong MySQL. Aug 13, 2025 pm 02:57 PM

B-treeindexesareBestFormostPhpapplications, astheysupportequalityandrangequeries, sorting, andareidealforcolumnsusedinwhere, gabungan, ororderbyclauses;

Melaksanakan borang pop timbul dan penyerahan ajax untuk setiap butang pos tersuai di WordPress Melaksanakan borang pop timbul dan penyerahan ajax untuk setiap butang pos tersuai di WordPress Aug 08, 2025 pm 10:57 PM

Tutorial ini akan memberikan arahan terperinci tentang cara melaksanakan borang penyerahan pop timbul di WordPress untuk butang mandiri untuk setiap jawatan tersuai (seperti jenis "hartanah"). Kami akan menggunakan dialog JQuery UI untuk membuat kotak modal dan secara dinamik lulus ID artikel melalui JavaScript. Di samping itu, tutorial akan meliputi cara menghantar data borang melalui AJAX dan mengendalikan logik backend tanpa menyegarkan halaman, termasuk muat naik fail dan maklum balas hasil.

See all articles