Laravel 4渴望加载多对多关系

时间:2013-07-18 21:04:49

标签: php laravel 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()

有什么想法在这里做错了吗?

1 个答案:

答案 0 :(得分:6)

你应该尝试:

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

请记住,您传递给with()的参数是方法,而不是模型,因此如果您在模型中有另一种方法,请说:location(),您将调用:

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