【发布时间】:2012-11-22 12:34:58
【问题描述】:
我正在开发一个需要大量定制的 OpenCart 项目。 对于我的项目,我必须更改购物车库 (system/library/cart.php) 中的某些内容。
我必须调用在产品模型 (catalog/model/catalog/product.php) 中定义的自定义函数。
在控制器中,加载模型并使用其功能很容易:
$this->load->model("catalog/product");
$this->model_catalog_product->customFunction();
但是如何在控制器之外加载模型呢? 您不能创建模型的新实例,我已经尝试过:
require_once("catalog/model/catalog/product.php");
$a_model = new ModelCatalogProduct();
这显然不起作用,因为模型不打算以这种方式使用。
我还尝试使用范围解析运算符 (ModelCatalogProduct::customFunction()) 它也不起作用。
我可以将所有必需的信息作为参数传递,但我宁愿使用购物车库类中的模型,因为更改将是全局的。
甚至可以在 OpenCart 中的控制器之外加载模型吗?
【问题讨论】:
-
你有什么理由需要这样做?
-
我在项目完成大约 70% 时加入了该项目。价格计算是完全自定义的,并且仅针对前端实现(该站点使用 AJAX 来获取有关它将花费多少的信息)。问题是,这些更改并未在后端实施。所以价格计算正常,但是当用户将产品添加到购物车时,它使用默认的 openCart 价格计算。我必须更改 getProducts() 函数,这样价格就可以了。
-
在产品模型中计算自定义价格。所以现在我可以选择浏览所有文件并找到我必须更改代码的地方,或者我在 Cart 库中添加大约 10 行代码就可以了。这就是我问的原因。