我在"admin/controller/mycustomcontroller/mycustomcontroller.php"
中创建了一个自定义控制器来处理我的后端模块的一些 AJAX请求等。此自定义控制器包含我打算使用的add()
方法。
情况:
add
方法可以正常工作。route=mycustomcontroller/mycustomcontroller.php/add
问题:
我无法使用以下方式加载控制器:
$this->load->controller('mycustomcontroller/mycustomcontroller/add');
我尝试将其加载到admin/controller/catalog/product.php
文件中并放入我的模型文件中,但它不返回任何内容(没有结果,没有错误,没有任何内容)。
我是Opencart的新手,我不知道问题是什么,在最糟糕的情况下,我只会查看控制器文件,但感觉不对。
答案 0 :(得分:0)
经过多次测试后我终于找到了问题,而且非常愚蠢。
假设你希望你的控制器返回一个编码的json
字符串,以便你可以在你的javascript中使用它,你可以写(习惯):
$this->response->setOutput(json_encode($result));
大错!调用load->controller()
方法时,不会考虑通过此函数设置输出,因此即使您的AJAX / JS仍然可以正常工作,也不会有任何其他方法。改为使用:
return json_encode($result)
事实上没有人在惊讶我之前偶然发现了这个问题,我要么愚蠢,要么缺少OC文档中的重要内容。