2013-02-11 159 views
1

我想添加額外的屬性到我的Kohana(v3.3)模型。Kohana模型 - 添加其他屬性

class Model_mymodel extends ORM { 
    protected $_myvar = NULL; 

    public function set_myvar() { 
     $this->_myvar = new Newclass(); 
    } 

    public function get_myvar() { 
     return $this->_myvar; 
    } 
} 

然後我試着將它設置

$inst = ORM::factory('mymodel', 1)->find(); 
$inst->set_myvar(); 
var_dump($inst->get_myvar()); 

這將返回NULL。我不明白爲什麼這會是一個問題。有什麼我失蹤了嗎?

感謝

+2

對我來說這段代碼起作用。你確定Kohana能找到Newclass嗎?你可以嘗試創建另一個類也許是一個視圖或東西,看看是否有效。另外,由於'Kohana 3.3'類應該以大寫字母開頭(Mymodel)。 – Manuras 2013-02-11 11:14:42

+0

在'application/bootstrap.php'的'Kohana :: init()'方法中設置'errors => true'。 – 2013-02-13 08:24:46

回答

0

延長__get方法

class Model_mymodel extends ORM { 
    protected $_myvar = NULL; 

    function __get($name) { 
     if ($name === 'myvar'){ 
     if (!($this->_myvar instanceof Newclass){ 
      $this->_myvar = new Newclass; 
     } 
     return $this->_myvar; 
     } 
     return parent::__get($name); 
    } 
} 

這樣,如果還不存在,解決兩個問題,在一次Newclass自動實例化。