首页 > 解决方案 > Laravel belongsTo 关系获取“非对象的属性”

问题描述

当我尝试从 belongsTo 关系中获取数据时,我遇到了问题。

用户

    public function profileImage()
    {
        $this->morphClass = 'profileImage';
        return $this->morphOne('App\Models\Image', 'imageable');
    }

并在邮政


    protected $with = ['creator'];

    protected $hidden = ['creator'];

    protected $appends = ['creator_image'];

    public function getCreatorImageAttribute()
    {
        return $this->creator->profileImage->url;    // Error
//        return dd($this->creator->profileImage->url);   // dd line
    }


    public function creator()
    {
        return $this->belongsTo('App\Models\User','creator_id');
    }

并在数据库表中:

User: {
   id
}

Post: {
   id,
   creator_id
}

有趣的部分就在这里:当我使用 dd 行时,我得到了我想要的,没有任何错误

但是当我使用实线时,我得到了错误

Trying to get property 'profileImage' of non-object

我在这一行中调用它:

Model::with('posts')->find($id);

标签: laraveleloquent

解决方案


推荐阅读