微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Laravel Eloquent属于不工作

我不能使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())

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐