Prestashop webservice,请求随机行资源
Prestashop webservice, request random row of ressources
我正在使用带 php 的 PSWebServiceLibrary 在 prestashop 上开发网络服务。
我想要的是请求获得随机行,例如我想要获得 10 个随机产品。
在网络服务 api 上没有可以制作这个的选项;有没有办法在 php 上使用 PSWebServiceLibrary 发出该请求?就像我在下面做的那样:
public function get_random_product(){
$webservice = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt['resource'] = 'products';
$opt['filter']['active'] = 1;
$opt['limit'] = 10;
$opt['display'] = 'full';
$xmlResponse = $webservice->get($opt);
$allproducts = $xmlResponse->children()->children();
return ($allproducts);
}
这个只得到第一行的第 10 个产品,但我希望结果是随机的。谢谢:)
你可以从数据库中获得 10 个随机产品
select id_product from ps_product order by rand() limit 10;
然后从 API 检索,例如
www.yourapp.com/api/products/?filter[id]=[1|2|3|4|5|6|7|8|9|10]
在你的函数中
public function get_random_product(){
$rows = DB::getInstance()->executeS('select id_product from ps_product where active order by rand() limit 10');
$joinedIdProducts = implode('|', $rows);
$webservice = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt['resource'] = 'products';
$opt['filter']['active'] = 1;
$opt['filter']['id'] = $joinedIdProducts;
$opt['limit'] = 10;
$opt['display'] = 'full';
$xmlResponse = $webservice->get($opt);
$allproducts = $xmlResponse->children()->children();
return ($allproducts);
}
我正在使用带 php 的 PSWebServiceLibrary 在 prestashop 上开发网络服务。 我想要的是请求获得随机行,例如我想要获得 10 个随机产品。 在网络服务 api 上没有可以制作这个的选项;有没有办法在 php 上使用 PSWebServiceLibrary 发出该请求?就像我在下面做的那样:
public function get_random_product(){
$webservice = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt['resource'] = 'products';
$opt['filter']['active'] = 1;
$opt['limit'] = 10;
$opt['display'] = 'full';
$xmlResponse = $webservice->get($opt);
$allproducts = $xmlResponse->children()->children();
return ($allproducts);
}
这个只得到第一行的第 10 个产品,但我希望结果是随机的。谢谢:)
你可以从数据库中获得 10 个随机产品
select id_product from ps_product order by rand() limit 10;
然后从 API 检索,例如
www.yourapp.com/api/products/?filter[id]=[1|2|3|4|5|6|7|8|9|10]
在你的函数中
public function get_random_product(){
$rows = DB::getInstance()->executeS('select id_product from ps_product where active order by rand() limit 10');
$joinedIdProducts = implode('|', $rows);
$webservice = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt['resource'] = 'products';
$opt['filter']['active'] = 1;
$opt['filter']['id'] = $joinedIdProducts;
$opt['limit'] = 10;
$opt['display'] = 'full';
$xmlResponse = $webservice->get($opt);
$allproducts = $xmlResponse->children()->children();
return ($allproducts);
}