我遇到magento排序顺序问题。
$productPriceCollection = $products2->addAttributeToSort('mb_rank', 'DESC')->setPageSize("3")->addStoreFilter()->load();
$priceOrderCollection = $productPriceCollection->setOrder('price', 'ASC')->load();
我在这里要做的是获得具有最高mb_rank的前3个产品,然后通过价格上升仅对这三个产品进行排序,并将该列表加载为我用于剩余流程的最终列表。
但我总是得到价格下降的订单。
我已经尝试了
$priceOrderCollection = $productPriceCollection->addAttributeToSort('price', 'ASC')->load();
没有区别。
我在这里做错了什么?
最佳
答案 0 :(得分:0)
对这些评论感到抱歉。我刚刚意识到属性类型在你的情况下并不重要
问题是您使用的是->load
收藏品
加载收藏后,您无法修改订单或过滤器
试试吧。
$productPriceCollection = $products2->addAttributeToSort('mb_rank', 'DESC')
->setPageSize("3")
->addStoreFilter()
->addAttributeToSort('price', 'ASC')
->load();
答案 1 :(得分:0)
我以某种方式找到了解决方案的一半,首先如果使用文本字段,Magento将无法正确排序,您需要使用price作为字段类型来正确排序整数值。否则,它将被计为字符串值。
在我的情况下,为前三个结果添加第二种排序仍然不起作用。