opencart - 插件使选项下拉菜单在 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?
解决方案
问题:
您正在尝试调用 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
推荐阅读
- ios - 在手机上本地存储数据是否安全?
- .net - 转换为 Lamar - 注册 - 使用 StructureMap 的这段代码的等价物是什么?
- http - 如何检查在 TLS/SSL 握手期间是否进行主机名验证?
- bazel - 如何将规则限制为 cpp 工具链的子集?
- c++ - Open MP 中的冒泡排序较慢
- woocommerce - 是否可以像 woocommerce 默认更新的其他状态一样以颜色突出显示这些状态?
- elasticsearch - Elasticsearch 如何从动态映射中排除字段
- python - TypeError:super() 参数 1 必须是类型,而不是 MagicMock - azure-devops python 包
- vue.js - 将对象嵌套在对象中
- javascript - 将数据库导入 JS 文件