【问题标题】:magento community 1.7.0.2 product collection sort does not workmagento community 1.7.0.2 产品集合排序不起作用
【发布时间】:2014-02-14 13:31:09
【问题描述】:

我在 magento 中的排序顺序有问题。

    $productPriceCollection = $products2->addAttributeToSort('mb_rank', 'DESC')->setPageSize("3")->addStoreFilter()->load();
    $priceOrderCollection = $productPriceCollection->setOrder('price', 'ASC')->load();

我在这里尝试做的是获取前 3 个具有最高 mb_rank 的产品,然后按价格升序仅对这三个产品进行排序,并将该列表加载为我在其余过程中使用的最终列表。

但我总是以价格下降的形式获得订单。

我已经试过了

    $priceOrderCollection = $productPriceCollection->addAttributeToSort('price', 'ASC')->load();

没有区别。

我在这里做错了什么?

最好的

【问题讨论】:

  • 你的属性是什么类型(文本、选择、整数)?
  • 价格字段类型为价格。
  • 我说的是mb_rank
  • mb_rank 是文本字段。整数值。

标签: php magento sorting


【解决方案1】:

对 cme​​ts 感到抱歉。我刚刚意识到属性类型在您的情况下并不重要。
问题是您在收藏中使用->load
加载收藏后,您将无法修改其上的顺序或过滤器。
像这样试试。

$productPriceCollection = $products2->addAttributeToSort('mb_rank', 'DESC')
    ->setPageSize("3")
    ->addStoreFilter()
    ->addAttributeToSort('price', 'ASC')
    ->load();

【讨论】:

  • 感谢您的回答,我会在 5 分钟内尝试并告诉您结果。
  • 不幸的是,这次只有价格排序起作用,而 mb_rank 排序没有任何影响。
  • 确保重建索引。
  • 我做了几次,又做了一次,但它没有改变结果列表上的任何东西。
  • 对不起,我在评论中写错了属性。 mb_rank 仍在工作,但价格排序不起作用。必须具备哪些字段设置才能按该字段排序?
【解决方案2】:

我以某种方式找到了一半的解决方案,首先,如果您使用文本字段,Magento 将无法正确排序,您需要使用价格作为字段类型来正确排序整数值。否则它将被计为一个字符串值。

在我的情况下,为前三个结果添加第二个排序仍然不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多