我试图在Laravel项目中为我的某个模型创建一个新属性,但每当我尝试这样做时,我都会给ErrorException
。这是我的模型代码:
class Journey extends Eloquent {
public function getArticleAttribute($value) {
if (is_null($this->article)) { // Exception occurs here
$this->article = file_get_contents($this->article_url);
}
return $this->article;
}
}
我立即收到此错误:
Undefined property: Journey::$article
在我上面的代码中突出显示的行上。
嗯,当然没有定义!这就是我试图创造它的原因!这应该是超级简单的,但它只是不起作用。有任何想法吗? $this->article_url
已定义并存在,因此问题不在于......
答案 0 :(得分:1)
如果“article”不是db表的列,则应将其定义为class属性:
class Journey extends Eloquent {
protected $article = null;
public function getArticleAttribute($value) {
if (is_null($this->article)) { // Exception occurs here
$this->article = file_get_contents($this->article_url);
}
return $this->article;
}
}