Opencart 2.3注意:未定义的属性:Proxy :: function_name

时间:2016-12-28 09:35:47

标签: php codeigniter opencart vqmod ocmod

我正在开发Opencart 2.3,我在系统中安装了一个新的扩展程序,从那时起我在前端的产品描述页面中收到错误:

  

未定义属性:Proxy :: function_name **

上传的扩展程序位于管理部分,产品说明页面在安装新扩展程序之前工作正常。

注意:扩展名包含vqmod文件,修改文件夹包含与扩展名相关的文件。

2 个答案:

答案 0 :(得分:6)

我有这个。 我的问题是扩展的路径是

扩展\模块\ name_here

但是因为我刚从1.5.6升级它,它只有模块\ name_here。我忘了更改类名以匹配新路径。

class Model**Extension**Modulename_here extends Model {

扩展词缺失。 这个错误真的很模糊,只有在github上找到它才有意义我的错误是什么。

答案 1 :(得分:0)

我在Live Server中遇到过这个问题。但问题是我已加载模块并正确调用它。但是,它对我没有任何帮助。

$this->load->model('catalog/product');
$this->model_catalog_product->addmyproducts($myproducts);

class Model**Extension**Modulename_here extends Model {

解决这个问题的解决办法是弄明白 OpenCart Framework中的架构如何运作?
请遵循以下解决方案:

  • 在Opencart目录下查找 / system / storage / modification / admin
    在这里,您将能够看到MVC目录
  • 在修改文件夹下,您将找到写在其上的所有代码
  • 您需要在已定义的模型中识别模块的调用部分吗?
  • 在确定您之后会发现功能定义不存在的原因是什么!
  • 此外,如果您在目录/system/storage/modification/admin/.../...you'下定义相同的功能,则永远不会看到未定义的属性:Proxy :: module_name

更新

无论定义的函数如何,如果在单个文件下有两个具有相同名称的函数,则会在vqmod模块中引发歧义

对于Eg。调用方法getWarehouseDetails()如果它位于index()&另一个warehousedetails()位于单个文件中,两个不同的调用带有两个不同的文件名,同时加载$this->load->model(../..);您将获得

  

注意:未定义的属性:Proxy :: getWarehouseDetails in   /var/www/html/bluemb/vqmod/vqcache/vq2system_storage_modification_system_engine_action.php   第51行

在下面例如。在index()&中调用getWarehouseDetails()另一个在warehousedetails()

$this->load->model('tool/upload');
$warehouse_details = $this->model_tool_upload->getWarehouseDetails($seller_id);

$this->load->model('catalog/information');
$this->data['warehouse_details'] = $this->model_catalog_information->getWarehouseDetails($seller['seller_id']);