首页 > 解决方案 > 插件使选项下拉菜单在 opencart 产品中不起作用

问题描述

Option对添加/编辑产品的选项卡有疑问。问题是,当我安装扩展程序Autocomplete No More并选择 Option 时,它会引发此错误

Fatal error: Uncaught Error: Call to a member function getOptionData() on null in /../ocartdata/storage/modification/admin/controller/catalog/option.php:437

option.php第 437 行是

$option_data = $this->model_extension_catalog_autocomplete_no_more->getOptionData($this->request->post['option_id']);

而全功能就是这个

public function getOptionData() {
    
    if (isset($this->request->post['option_id'])) {

        $this->load->language('catalog/option');            
        $this->load->model('catalog/autocomplete_no_more');         
        $this->load->model('tool/image');
        
        $option_data = $this->model_extension_catalog_autocomplete_no_more->getOptionData($this->request->post['option_id']);
                        
        $this->response->setOutput(json_encode($option_data));
    }
}

有谁知道为什么这会抛出null?

标签: opencartopencart-3opencart-module

解决方案


问题:

您正在尝试调用 Object 的方法

$this->model_extension_catalog_autocomplete_no_more

在对象名称中带有扩展名。

但是您正在加载模型,但路径中没有扩展名:

$this->load->model('catalog/autocomplete_no_more')

很明显,错误信号表明您尚未定义此对象

Call to a member function getOptionData() on null

解决方案:

通过向路径添加扩展名来修复它:

$this->load->model('extension/catalog/autocomplete_no_more')

或从对象名称中删除 if:

$this->model_catalog_autocomplete_no_more

推荐阅读