Magento在类别页面中的哪个订单/排序集合

时间:2017-10-18 13:30:06

标签: php mysql magento

我传入一个参数order=price&dir=desc的查询字符串,按价格从大到小排序。在list.phtml模板文件中 Mage_Catalog_Model_Resource_Product_Collection 具有空数组的orders属性,因此页面刷新但返回相同的默认集合。

我试图运行mysqladmin -u -p -i 1 processlist 查看对数据库的查询,但没有传递对产品的查询(缓存已关闭)。

我试图调试但显然它是按事件运行的,而且我很难找到哪些类:

1.对DB的实际查询发生

2.排序发生

也许有人有一些经验,为什么它不排序。感谢。

1 个答案:

答案 0 :(得分:0)

//首先用于排序类别的类。

File Path : Mage/Catalog/Block/Product/List/Toolbar.php

//跟随用于排序集合的函数。

public function setCollection($collection)
    {
        $this->_collection = $collection;

        $this->_collection->setCurPage($this->getCurrentPage());

        // we need to set pagination only if passed value integer and more that 0
        $limit = (int)$this->getLimit();
        if ($limit) {
            $this->_collection->setPageSize($limit);
        }
                if($this->getCurrentOrder() == 'review'){
            $this->_collection->sortByReview($this->getCurrentDirection());
        }
        else if ($this->getCurrentOrder()) {
            $this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
        }
        return $this;
    }