Kohana模型 - 添加其他属性

时间:2013-02-11 02:57:21

标签: php class kohana

我正在尝试为我的Kohana(v3.3)模型添加额外的属性。

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。我不明白为什么这会是一个问题。有什么东西我不见了吗?

由于

1 个答案:

答案 0 :(得分: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会自动实例化,如果它还不存在,一次解决两个问题。