gpt4 book ai didi

php - Magento - 二次排序依据

转载 作者:可可西里 更新时间:2023-11-01 01:05:42 29 4
gpt4 key购买 nike

我浏览了一些我发现的与排序相关的帖子,但没有提出所需的解决方案。

我目前正在使用以下代码对类别 View 字段中的产品进行排序,以覆盖默认选项并按 toolbar.phtml 中的属性排序。

<option value="<?php echo $this->getOrderUrl('name', 'asc') ?>"<?php if($this->isOrderCurrent('name')): ?> selected="selected"<?php endif; ?>>
NAME
</option>
<option value="<?php echo $this->getOrderUrl('short_description', 'asc') ?>"<?php if($this->isOrderCurrent('short_description')): ?> selected="selected"<?php endif; ?>>
FRAGRANCE
</option>
<option value="<?php echo $this->getOrderUrl('price', 'asc') ?>"<?php if($this->isOrderCurrent('price') && $this->getCurrentDirection() == 'asc'): ?> selected="selected"<?php endif; ?>>
PRICE (Low to High)
</option>
<option value="<?php echo $this->getOrderUrl('price', 'desc') ?>"<?php if($this->isOrderCurrent('price') && $this->getCurrentDirection() == 'desc'): ?> selected="selected"<?php endif; ?>>
PRICE (High to Low)
</option>

(我错误地使用了 short_description 属性而不是添加自定义香味属性)

现在,我需要的功能是,当使用其中每一个时,例如按价格排序,我希望它按它已经执行的价格排序,然后再按另一个自定义属性“范围”进行排序.所以它应该显示所有 3 英镑的产品,它会显示每个范围内的产品聚集在一起,而不是目前看起来随机的东西。

这是我上线的最后一个主要绊脚石,因此非常感谢任何帮助。

我已经使用 toolbar.php 中的以下行设法通过了一些道路

if ($this->getCurrentOrder()) {
$this->_collection->setOrder(array($this->getCurrentOrder(), 'range'), $this->getCurrentDirection());
}

唯一的问题是它似乎首先按范围排序而不是按价格排序,即所有范围 1 按价格排序,然后范围 2 按价格排序。我需要它按价格订购,范围是价格的子订购

最佳答案

当您对产品集合调用 setOrder() 时,它会检查给定的属性是否为 price,如果是,则使用 addAttributeToSort .这是因为按价格排序需要一些比通用 sortOrder 方法更具体的代码。
但是当你传递一个数组时,测试失败并且使用了公共(public)代码,所以你可以尝试将两个 setOrder() 调用分开:

if ($this->getCurrentOrder()) {
$this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
$this->_collection->setOrder('range', $this->getCurrentDirection());
}

关于php - Magento - 二次排序依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11492067/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com