我无法使belongsTo
关系有效(或者我使用错误的关系)。
我的数据库结构(简化):
网页:
id | title | main_image ----------------------- 1 | Test | 5
媒体:
id | filepath ----------------------- 5 | uploads/test.jpg
所以我希望能够$page->main_image
,它会返回我的媒体模型实例,所以我可以使用$page->main_image->filepath
等。
在Page
模型中,我有以下内容:
public function main_image()
{
return $this->belongsTo('App\Modules\Media\Models\Media', 'id', 'main_image');
}
但当我$page->main_image
时,我得到int 5
。我在这里使用了错误的关系吗?
谢谢!
答案 0 :(得分:2)
访问{{1}时}如果没有相同名称的属性,Eloquent将仅尝试查找$page->main_image
关系。但是您已经有一个列名main_image()
。因此,您应该重命名attribut(列名称)或关系。我会将列重命名为main_image
。
要返回的优先级/顺序是:
main_image_id
)public $main_page
)$page->getMainPage()
)$page->attributes['main_page']
)$this->attributes['main_page']
)$this->relations['main_page']
)