我有一个Post模型
public function image() { return $this->morphOne('App\Image', 'imageable'); }
但是当我修补$post->image()
时,它会返回Illuminate\Database\Eloquent\Relations\MorphOne {#704}
我必须添加“ - > first()”来实际获取Image对象。如何让$post->image()
返回Image对象?
这是Image对象上的关系:public function imageable() { return $this->morphTo(); }
答案 0 :(得分:2)
如果要检索关系的结果,则应调用动态属性$post->image
,而不是方法$post->image()
。
Eloquent Relationships文档通过基本关系使用说明,但如果您正在浏览,则很容易阅读过去。当你开始处理关系时,我建议你花时间阅读大部分内容(如果不是全部的话)。
答案 1 :(得分:0)
简单回答,我需要使用$post->image
来获取相关的Image对象。傻我。我认为我的困惑源于被困在多对多或一对多关系的思维模式中。