2013-07-18 78 views
1

嘗試使用多對多關係對Laravel 4進行簡單的熱切加載。我的模特看起來像。Laravel 4渴望加載多對多關係

class Facility extends Eloquent { 

    public function photos(){ 
      return $this->belongsToMany('Photo'); 
    } 
} 

class Photo extends Eloquent { 

    public function facilities(){ 
      return $this->belongsToMany('Facility'); 
    } 
} 

表格根據Laravel標準設置。當我嘗試

$facilities = Facility::with('Photo')->get(); 

我結束了一個Laravel錯誤

Call to undefined method Illuminate\Database\Query\Builder::photo() 

任何想法,什麼正在做什麼錯在這裏加載使用?

回答

6

你應該嘗試:

$facilities = Facility::with('photos')->get(); 

記住,你傳遞給with()參數是方法,而不是模型,所以如果你有在模型中的另一種方法,說:location(),你會打電話給:

$facilities = Facility::with(['photos', 'location'])->get(); 
+1

如果照片有參考我如何渴望加載它? – Fisherman

+0

如果Photo模型有一個reference()關係,你可以嘗試:'$ facilities = Facility :: with('photos.reference') - > get();' –

+0

謝謝@aladin – Fisherman