Perhubungan Bersarang dalam Laravel
Perhubungan bersarang membolehkan anda mengakses model yang berada dalam beberapa peringkat jauh dalam struktur data anda. Ini boleh menjadi satu cabaran untuk dicapai dalam Laravel, terutamanya dengan perhubungan yang rumit.
Pernyataan Masalah:
Mendapatkan semula senarai orang yang melanggan acara, walaupun terdapat beberapa jadual perantara antara model acara dan orang.
Struktur Pangkalan Data:
Struktur pangkalan data melibatkan jadual berikut: acara, bandar, syarikat dan orang.
Hubungan Model:
Percubaan Tidak Berjaya:
Percubaan untuk gunakan kaedah with() dan whereHas() tidak menghasilkan hasil yang diingini.
Penyelesaian:
Untuk menyelesaikan masalah ini, gunakan pertanyaan berikut:
return Event::with('city.companies.persons')->get();
Pertanyaan ini tidak sabar-sabar memuatkan bandar, syarikat dan orang yang dikaitkan dengan acara tersebut.
Sebagai alternatif, jika anda ingin memilih medan tertentu sahaja daripada jadual orang:
return Event::with(['city.companies.persons' => function ($query) { $query->select('id', '...'); }])->get();
Pendekatan ini memastikan bahawa hanya medan yang ditentukan diambil, mengoptimumkan pertanyaan.
Atas ialah kandungan terperinci Cara Mendapatkan Perhubungan Bersarang dalam Laravel: Mengakses Orang yang Dilanggan Acara Merentasi Jadual Perantara Berbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!