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


Cannot load custom controller in Opencart 2

我在"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文档中遗漏了一些重要的东西。