无法在Opencart 2中加载自定义控制器

时间:2015-08-07 16:42:33

标签: php ajax opencart2.x

我在"admin/controller/mycustomcontroller/mycustomcontroller.php"中创建了一个自定义控制器来处理我的后端模块的一些 AJAX请求等。此自定义控制器包含我打算使用的add()方法。

情况:

  • 我向管理员用户组授予了读/写权限。
  • 通过AJAX调用我的自定义控制器的add方法可以正常工作。
  • 与通过网址route=mycustomcontroller/mycustomcontroller.php/add
  • 直接访问相同

问题:

  • 我无法使用以下方式加载控制器:

    $this->load->controller('mycustomcontroller/mycustomcontroller/add');
    

    我尝试将其加载到admin/controller/catalog/product.php文件中并放入我的模型文件中,但它不返回任何内容(没有结果,没有错误,没有任何内容)。

我是Opencart的新手,我不知道问题是什么,在最糟糕的情况下,我只会查看控制器文件,但感觉不对。

1 个答案:

答案 0 :(得分:0)

经过多次测试后我终于找到了问题,而且非常愚蠢。

假设你希望你的控制器返回一个编码的json字符串,以便你可以在你的javascript中使用它,你可以写(习惯):

$this->response->setOutput(json_encode($result));

大错!调用load->controller()方法时,不会考虑通过此函数设置输出,因此即使您的AJAX / JS仍然可以正常工作,也不会有任何其他方法。改为使用:

return json_encode($result)   

事实上没有人在惊讶我之前偶然发现了这个问题,我要么愚蠢,要么缺少OC文档中的重要内容。