2013-07-18 77 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