检索模型的morphOne对象会返回Eloquent关系

时间:2015-12-03 21:04:23

标签: laravel eloquent laravel-5.1 polymorphic-associations

我有一个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(); }

2 个答案:

答案 0 :(得分:2)

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

Eloquent Relationships文档通过基本关系使用说明,但如果您正在浏览,则很容易阅读过去。当你开始处理关系时,我建议你花时间阅读大部分内容(如果不是全部的话)。

答案 1 :(得分:0)

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