我不能使belongsTo关系工作(或我使用错误的关系).
我的数据库结构(简化):
网页:
id | title | main_image ----------------------- 1 | Test | 5
媒体:
id | filepath ----------------------- 5 | uploads/test.jpg
所以我希望能够执行$page-> main_image,它会返回我的Media模型实例,所以我可以使用$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.我在这里使用了错误的关系吗?
谢谢!
最佳答案 访问$page-> main_image时,如果没有相同名称的属性,Eloquent将只尝试查找main_image()关系.但是你已经有了一个名称main_image.因此,您应该重命名attribut(列名称)或关系.我会将列重命名为main_image_id.
要返回的优先级/顺序是:
>公共对象属性(public $main_page)
> GetAccessor($page-> getMainPage())
>表格列/属性($page-> attributes [‘main_page’])
>表格中的属性/列($this-> attributes [‘main_page’])
>加载关系($this-> relations [‘main_page’])
>卸载关系($this-> main_page() – > get())