我正在\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');
但徒劳无功。
答案 0 :(得分:0)
您不能使用AngieApplication::useModel()
或AngieApplication::setForAutoload()
来覆盖内置类,而是替换它们。为了“覆盖”,您需要完全替换现有的类并更改所需的方法。
不推荐您决定使用的方法。我认为你应该退一步,我们应该从你试图解决的问题的角度开始讨论这个,而不是你想到的实现(我认为你选择了错误的方法,但不能100%肯定,直到我听到你想要达到的目的。)