6
Diciamo che ho questi rapportiCaricamento livellatore multiplo in Laravel?
class Invitation
{
public function invitedPeople()
{
return $this->belongsTo('App\Person', 'personID');
}
}
class Person
{
public function apartments()
{
return $this->belongsToMany('App\Apartment', 'apartment_person', 'personID', 'apartmentID');
}
}
class Apartment
{
public function city()
{
return $this->belongsTo('App\City', 'cityID');
}
}
La mia domanda è, quanti livelli nidificati che possiamo avere quando si utilizza laravel eager loading? Ho provato questa query e non funziona, qualcuno può suggerire un lavoro per questo?
return Invitation::with(['invitedPeople', 'invitedPeople.apartments', 'invitedPeople.apartments.city'])
È possibile nidificare tutti i livelli desiderati. Definire "non funziona", in quanto dovrebbe funzionare correttamente. L'unica cosa che vedo è che non hai chiamato '-> get()' alla fine. – patricus
Non c'è un limite, ma puoi ottimizzarlo facendo 'Invitation :: with (['invitePeople.apartments.city'])'. – user3158900
@ user3158900 Invitation :: with ('invitePeople.apartments.city')) farebbe tre join tra cui invitatiPersone, appartamenti e città? – ggderas