Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
prestashop:Display方法结果为JSON_Json_Module_Hook_Prestashop_Prestashop 1.6 - Fatal编程技术网

prestashop:Display方法结果为JSON

prestashop:Display方法结果为JSON,json,module,hook,prestashop,prestashop-1.6,Json,Module,Hook,Prestashop,Prestashop 1.6,我将在我的Prestashop模块中开发一个方法来获取产品列表并将结果作为JSON返回我获取产品列表没有问题,但是我不知道使用哪个钩子以及如何返回JSON结果,而不是返回到Prestashop页面。最好的方法是在模块中使用特定的控制器。控制器的结果可通过URL获得。 (您的控制器类必须扩展“ModuleFrontController”类) 在模块控制器中,应通过以下方式更改默认构造函数: public function __construct($response = array()) {

我将在我的Prestashop模块中开发一个方法来获取产品列表并将结果作为JSON返回
我获取产品列表没有问题,但是我不知道使用哪个钩子以及如何返回JSON结果,而不是返回到Prestashop页面。

最好的方法是在模块中使用特定的控制器。控制器的结果可通过URL获得。 (您的控制器类必须扩展“ModuleFrontController”类)

在模块控制器中,应通过以下方式更改默认构造函数:

public function __construct($response = array()) {
    parent::__construct($response);
    $this->display_header = false;
    $this->display_header_javascript = false;
    $this->display_footer = false;
}
在“后处理”方法中,只需回显所需的字符串,例如:

$json = json_encode( (array)$object );
最后,在模板中,您可以使用以下方法生成指向此控制器的链接:

{$link->getModuleLink('mymodule', 'mycontrolleurname', [], true)}

那个么,我怎样才能直接调用模块来显示这个输出呢?我的意思是哪个url将调用此模块?在您的模块文件中,在目录“mymodulename\controllers\front”中,您可以创建一个名为“mycontrollername.php”的php文件,方法如下:类MyModuleNameControllerNameMemoduleFrontController使用u construct()和postProcess()方法扩展ModuleFrontController{…}。在后处理中,您可以获取POST或get参数,并“回显”所需的响应。调用此控件的URL为: