Prestashop WebService"限制"参数不按预期工作

时间:2018-05-14 07:58:53

标签: web-services prestashop

我试图在PrestaShop的WebService中使用 limit 参数。 我的问题是它只有一半工作,显示的条目数量工作正常,但是#34;起点"不是。
例如: http://example.com/api/combinations?display=[id,reference]&limit=[0,500]&sort=id_ASC&ws_key=WEBSERVICEKEY

http://example.com/api/combinations?display=[id,reference]&limit=[500,500]&sort=id_ASC&ws_key=WEBSERVICEKEY
返回完全相同的产品(前500个)。

我正在使用PS 1.6.1.17 我已使用最新版本(从1.6.1.18开始)更新了classes / webservice文件夹 代码(classes / webservice / WebserviceRequest.php) - 没有覆盖:

JAVA_OPTS:  -Xmx3072m -XX:MaxPermSize=1024m -Djava.net.preferIPv4Stack=true

代码看起来很好,也许它与SQL相关?我想打印生成的查询来测试它,但我无法找到方法...

1 个答案:

答案 0 :(得分:0)

我发现了问题 int cast没有在这里工作。
$ this-> urlFragments [' limit'] [500,500]
爆炸后,$ limitArgs [0]等于 [500 ,但代码(int)($ limitArgs [0])总是给我 0 >而不是 500 我用一个丑陋的str_replace替换它,如下所示:

 $sql_limit .= ' LIMIT '.str_replace("[", "", $limitArgs[0]).(isset($limitArgs[1]) ? ','.(int)($limitArgs[1]) : '')."\n";// LIMIT X|X, Y

不是最好的,但如果有人遇到这种情况,可能会有用。

编辑:我发布了伪造,限制的正确语法是 limit = X,Y 不限制= [X,Y]。