>

order=price&dir=desc 매개 변수를 사용하여 쿼리 문자열을 전달합니다.  큰 가격에서 작은 가격으로 주문하십시오. list.phtml 에서  템플릿 파일 Mage_Catalog_Model_Resource_Product_Collection 는 빈 배열의 orders 속성을 가지므로 페이지가 새로 고침되지만 동일한 기본 컬렉션으로 반환됩니다.

mysqladmin -u -p -i 1 processlist 를 실행하려고했습니다.   db에 대한 쿼리를 볼 수 있지만 제품에 대한 쿼리가 전달되지 않았습니다 (캐시가 꺼져 있음).

디버깅을 시도했지만 이벤트에 의해 작동하며 어떤 클래스에서 찾기가 매우 어렵습니다.

1. DB에 대한 정확한 쿼리가 발생합니다

2. 정렬이 일어난다

아마도 누군가 정렬되지 않은 경험이있을 것입니다. 감사합니다.

  • 답변 # 1

    // 카테고리 정렬에 사용되는 클래스 아래 첫 번째

    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;
        }
    
    

  • 이전 c# - 각각에 대한 DrawItem 이벤트가있는 동적 목록 상자
  • 다음 java - HDP 플랫폼의 Kafka NoSuchMethodError