0

我正在\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');

但徒劳无功。

4

1 回答 1

0

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

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

于 2013-05-12T17:48:29.060 回答