prestashop:Display方法结果为JSON
我将在我的Prestashop模块中开发一个方法来获取产品列表并将结果作为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()) {
我获取产品列表没有问题,但是我不知道使用哪个钩子以及如何返回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为: