Apabila berurusan dengan perhubungan data yang kompleks, mendapatkan data yang diingini boleh menjadi satu cabaran. Dalam Laravel, perhubungan bersarang menyediakan mekanisme mudah untuk mendapatkan semula data yang saling berkaitan daripada berbilang jadual pangkalan data.
Pertimbangkan tugas untuk mendapatkan semula senarai orang yang melanggan acara tertentu. Struktur pangkalan data melibatkan jadual untuk acara, bandar, syarikat dan orang, dengan pelbagai peringkat perhubungan di antara mereka.
Model Acara mempunyai hubungan belongsTo dengan City, manakala City mempunyai kedua-duanya mempunyai Banyak hubungan dengan Syarikat dan Acara. Syarikat mempunyai banyak hubungan dengan Orang dan Orang mempunyai hubungan kepunyaanRamai dengan Acara melalui jadual pangsi (event_scores).
Untuk mendapatkan semula data yang dikehendaki, gunakan kaedah with() untuk menentukan perhubungan bersarang yang dikehendaki. Pertanyaan berikut akan mengambil acara dan data bersarangnya dalam satu panggilan pangkalan data:
return Event::with('city.companies.persons')->get();
Pertanyaan ini menavigasi dengan lancar melalui perhubungan bersarang, bermula dari model Acara, hingga ke model Orang. Ia akan mengembalikan objek Acara bersama-sama dengan Bandar, Syarikat dan Orang yang berkaitan.
Jika anda hanya memerlukan medan tertentu daripada jadual orang, nyatakannya dalam dengan( ) panggil balik:
return Event::with(['city.companies.persons' => function ($query) { $query->select('id', 'firstname', 'lastname'); }])->get();
Pertanyaan tersuai ini hanya akan mendapatkan semula medan id, nama pertama dan nama keluarga daripada jadual orang, mengurangkan muatan dan meningkatkan prestasi.
Perhubungan bersarang dalam Laravel memperkasakan anda untuk mendapatkan semula struktur data yang kompleks dengan mudah. Dengan menggunakan kaedah with() dan memahami hubungan antara model anda, anda boleh mengambil data yang saling berkaitan dalam satu panggilan pangkalan data, menjimatkan masa dan usaha dalam projek pembangunan Laravel anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan semula Struktur Data Kompleks dengan Perhubungan Bersarang dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!