laravel eager load - 无法访问模型属性

时间:2015-08-18 12:44:07

标签: laravel

我正急切地想要建立一种关系:

Album::with('songs')->where('album_id', $albumId)->first();

我在相册中有这种关系:

public function songs() {
    return $this->hasMany('Song')->where('rect_id', $this->mes_rect_id);    
}

但似乎$ this-> mes_rect_id(这是一个额外的列)完全未定义。怎么来的?

1 个答案:

答案 0 :(得分:0)

您的关系需要

return $this->hasMany('Song', 'rect_id', 'mes_rect_id');

hasMany()(以及所有其他关系方法)已经支持为您的关系提供本地和外键。当急切加载时,在加载模型的属性之前访问关系,因此您不能在where约束中使用$this->mes_rect_id