【问题标题】:kohana add column to inherit modelkohana 添加列以继承模型
【发布时间】:2011-11-03 22:09:26
【问题描述】:

我想知道如何使用 kohana orm 和继承。

假设我有一个名为 Vehicle 的模型

$_table_columns 5 列

假设我创建了另一个名为 Car 的模型,并且我想在模型中再添加 5 列。我应该如何修改父 $_table_columns 变量还是应该覆盖它?

谢谢

【问题讨论】:

    标签: kohana-orm


    【解决方案1】:

    我想您正在寻找类似protected $_table_columns = parent::_table_columns + array(...); 的东西。不幸的是 PHP 不允许这样做,因此您必须覆盖 $_table_columns 并列出所有 10 列或覆盖 ORM reload_columns 方法,如下所示:

    public function reload_columns($force = FALSE)
    {
       $this->_table_columns = parent::_table_columns + array(...);
       parent::reload_columns($force);
    }
    

    【讨论】:

    • 嗨马蒂诺,感谢您的回复。你为什么说 php 不允许用于受保护的属性或“+”号?无论哪种方式,reload_columns 的作用是什么?
    • 是否可以使用 columns 数组做类似 stackoverflow.com/questions/3859155/… 的事情?
    • reload_columns 是本机 ORM 函数,其中 $_table_columns 正在初始化。所以如果你按照我写的方式重写这个函数,你可以按照你的要求初始化它。
    • Matino,我所做的是扩展父类并在类的构造函数上我做了 $this->_table_columns = $this->_table_columns + array(...) 之后我调用了父构造函数。我似乎在工作,但后来我从数组中删除了一些字段,但模型一直在加载这些字段,这就是我问这个问题的原因。 stackoverflow.com/questions/8017337/… 你也回答了,谢谢你的帮助
    猜你喜欢
    • 1970-01-01
    • 2020-11-04
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    相关资源
    最近更新 更多