2016-03-17 20 views
6

ı bu ilişkileriLaravel'de çoklu seviyeli istekli yükleme?

burada
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'); 
    } 
} 

Sorum var diyelim deyişle, laravel istekli yükleme kullanırken kaç iç içe düzeyleri alabilir miyiz? Bu sorguyu denedim ve çalışmıyor, birisi bunun için bir çalışma önerebilir mi? sizin için

return Invitation::with('invitedPeople.apartments.city')->get() 

için

return Invitation::with(['invitedPeople', 'invitedPeople.apartments', 'invitedPeople.apartments.city']) 
+0

İstediğiniz kadar sayıda yuva yapabilirsiniz. İyi çalışmadığı için "çalışmıyor" u tanımlayın. Gördüğüm tek şey, sonunda '-> get() 'demediniz. – patricus

+0

Sınır yoktur, ancak bunu '' Davet :: ile (['invitedPeople.apartments.city']) 'yaparak optimize edebilirsiniz. – user3158900

+0

@ user3158900 Davet :: ile ('invitedPeople.apartments.city']) davetliPeople, daire ve şehir olmak üzere üç birleşme yapar mı? – ggderas

cevap

7

Değişim bunu Olacak istekli yük ilgili tüm verileri. Get() işlevini kaçırdınız. Gidebileceğin kadar derine oturabilirsin.