3

在获取相关模型时,我试图让急切的加载工作。

public function allCompanies() {
    $companies = $this->companies()->active()->get();
    $companies->load('Industry');
    return $companies;
}

我在模型 Industry 上有这个功能,我相信这应该获取当前行业内的公司,它还应该为公司获取相关行业(这将是当前记录)

这似乎不起作用,因为当我遍历公司时,它会为每个公司重新获取行业。

我的$companies->load('Industry');线路有问题吗?

谢谢

4

1 回答 1

6

尝试:

public function allCompanies() {
    $companies = $this->companies()->active()->with('industry')->get();
    return $companies;
}

with()load()函数是模型中的引用函数,而不是模型本身,即:

class Company extends Eloquent {

    public function industry()
    {
        return $this->belongsTo('Industry');
    }
}
class Industry extends Eloquent {

        public function companies()
        {
            return $this->hasMany('Company');
        }
}

请参考http://laravel.com/docs/eloquent#eager-loading

于 2013-06-14T07:38:58.260 回答