Laravel模型告诉我一个我试图创建的属性不存在?

时间:2014-10-19 07:51:09

标签: php laravel

我试图在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已定义并存在,因此问题不在于......

1 个答案:

答案 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;
    }
}