如何在ActiveCollab中覆盖公司模型

时间:2013-05-12 14:04:21

标签: model activecollab

我正在\custom\modules目录中创建一个自定义模块,我想覆盖Companies.class.php(来自activecollab\3.3.7\modules\system\models\companies directory的公司模型)。我想使用函数findForObjectsList()但是当我使用Angie的useModel()函数时,它从我的自定义模块加载我所有站点的公司模型。虽然我只想在我的模块中覆盖它而不是在任何地方。

我的init.php是这样的:

/**
   * company List module initialisation file
   */

  const COMPANYLIST_MODULE = 'company_list';
  const COMPANYLIST_MODULE_PATH = __DIR__;

  AngieApplication::useModel(array(
    'companies',
  ), COMPANYLIST_MODULE);
我也用过这个:

AngieApplication::setForAutoload('Comapny List', CALENDAR_MODULE_PATH . '/models/companies/ListCompanies.class.php');

但徒劳无功。

1 个答案:

答案 0 :(得分:0)

您不能使用AngieApplication::useModel()AngieApplication::setForAutoload()来覆盖内置类,而是替换它们。为了“覆盖”,您需要完全替换现有的类并更改所需的方法。

不推荐您决定使用的方法。我认为你应该退一步,我们应该从你试图解决的问题的角度开始讨论这个,而不是你想到的实现(我认为你选择了错误的方法,但不能100%肯定,直到我听到你想要达到的目的。)