检索模型的 morphOne 对象 returns 一个 Eloquent 关系

Retrieving a Model's morphOne object returns an Eloquent relationship

我有一个 Post 模型 public function image() { return $this->morphOne('App\Image', 'imageable'); }

但是当我修改 $post->image() 它 returns Illuminate\Database\Eloquent\Relations\MorphOne {#704}

我必须添加“->first()”才能实际获取 Image 对象。如何获得 $post->image() return Image 对象?

这是图像对象上的关系:public function imageable() { return $this->morphTo(); }

简单的回答,我需要使用$post->image来获取相关的Image对象。傻我。我认为我的困惑源于对多对多或一对多关系的思维定式。

如果要检索关系的结果,应该调用动态属性$post->image,而不是方法$post->image().

Eloquent Relationships 文档通过基本的关系用法进行了解释,但如果您略读,很容易阅读过去。我建议您在开始处理人际关系时花点时间阅读大部分内容(如果不是全部的话)。