我在"admin/controller/mycustomcontroller/mycustomcontroller.php"
中创建了一个自定义控制器来处理一些AJAX请求以及我的后端模块的其他事情。这个自定义控制器包含一个我打算使用的add()
方法。
:
- 我给Administrator用户组读写权限。
- 通过AJAX调用我的自定义控制器的
add
方法工作得很好。 - 与通过url
route=mycustomcontroller/mycustomcontroller.php/add
直接访问相同
问题:
-
我不能加载控制器使用:
$this->load->controller('mycustomcontroller/mycustomcontroller/add');
我试图在
admin/controller/catalog/product.php
文件和模型文件中加载它,但它没有返回任何东西(没有结果,没有错误,没有任何东西)。
我是新的Opencart,我不知道是什么问题,在最坏的情况下,我将只是卷曲控制器文件,但这感觉不对。
经过多次测试,我终于找到了问题所在,这是相当愚蠢的。
假设你想让你的控制器返回一个编码的json
字符串,这样你就可以在你的javascript中使用它,你可以写(习惯):
$this->response->setOutput(json_encode($result));
大错误!当调用load->controller()
方法时,不会考虑通过该函数设置输出,因此即使AJAX/JS仍然可以正常工作,也不会考虑其他方法。而不是使用:
return json_encode($result)
在此之前没有人偶然发现这个问题,这让我很惊讶,我要么是愚蠢的,要么是在OC文档中遗漏了一些重要的东西。