所以我有以下代码:
if (!$this->relationLoaded('feed')) {
$this->getFeed();
}
然后在getFeed()方法中,我具有以下内容:
public function getFeed() {
$feed = Cache::get(RSSFeed::CACHE_KEY . $this->id_RSSFeed, function() {
$feed = $this->feed;
Cache::put(RSSFeed::CACHE_KEY . $this->id_RSSFeed, $feed, now()->addHours(24));
return $feed;
});
// not empty
echo "<pre>";
print_r($feed);
$this->setRelation('feed', $feed);
// empty
print_r($this->feed);
exit;
return $this->feed;
}
我还具有如下定义的feed()关系:
public function feed() {
return $this->belongsTo("App\RSSFeed", "id_RSSFeed");
}
现在由于某种原因,当我在print_r()
上设置关系后尝试在$this->feed
上进行$this
时,它返回null或为空。我在这里做错了什么?我使用了错误的方法吗?你们能提供的任何帮助将不胜感激。
编辑:我忘了在班级顶部我有以下内容:
class RSSFeed extends Model {
public $feed;
}
因此,这覆盖了该关系。我会尽快添加答案,以防其他人搞砸。
答案 0 :(得分:0)
在问题中的编辑中发布,这是罪魁祸首:
class RSSFeed extends Model {
public $feed;
}
从那里删除public $feed;
后,它便开始正常工作