代码之家  ›  专栏  ›  技术社区  ›  Darryl Hein IrishChieftain

有没有办法不使用Kohana中的子模型覆盖整个属性?

  •  0
  • Darryl Hein IrishChieftain  · 技术社区  · 14 年前

    Model_Auth_User
    Model_Module_User
    Model_App_User
    Model_User
    

    ……哪里 Model_User

    我的问题是 Model_App_User 我想在模型中添加一个列,比如 employee_flag . 我要把它加到 _labels _table_columns 可能还有其他人。当然,如果我把下面的 :

     protected $_labels = array(
          'employee_flag' => 'Employee Flag',
     );
    

    整个标签数组将被覆盖。不是我想要的。

    有一次我想到的方法是添加一个名为 _override_properties Model_Module_User 它会覆盖我放进去的东西 模型应用程序用户

    还有其他的选择吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   The Pixel Developer    14 年前

    有两种解决方法。通过在名为 labels

    public static function labels ()
    {
        return array
        (
            'name' => 'First Name'
        );
    }
    

    那么在你的孩子班上,就简单到:

    public static function labels ()
    {
        $labels = parent::labels();
    
        // Add new or modify labels.
        $labels['last'] = 'Last Name';
    
        return $labels;
    }
    

    您需要修改ORM检索标签的方式。如果您没有时间修改ORM的工作方式,那么 在子数组中添加数组的解决方案 __construct 是一个很好的妥协。

        2
  •  0
  •   Halil Özgür    14 年前

    那怎么办 $this->_labels['employee_flag'] = 'Employee Flag'; ?