2013-12-18 2 views
0

아래와 같이 diy_kit_price 특성 (새 특성이 이미 추가됨)을 포함한 일부 특성으로 제품 컬렉션을 필터링하려고합니다.필터 여러 가격 범위로 제품 컬렉션

가격 범위는 :

  1. 0 - 5000
  2. 10000-15000

나는 여러 가지 방법하지만 행운을 시도했다. 내가 한 가격 범위에 의해 필터링하고 때 :

작업 코드

$products = Mage::getModel('catalog/product')->getCollection() 
     ->addAttributeToSelect('*') 
     ->addAttributeToFilter('type_id', 'configurable') 
     ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left') 
     ->addAttributeToFilter('category_id', array(
      array('finset' => '37') 
      ))     
     ->addAttributeToSort('name', 'asc') 
     ->addAttributeToFilter('diy_kit_price', array('gt' => 0)) 
     ->addAttributeToFilter('diy_kit_price', array('lt' => 5000)); 

작동하지 않는 코드 : 내가 한 가격 범위에 의해 필터링하고 때

$products = Mage::getModel('catalog/product')->getCollection() 
     ->addAttributeToSelect('*') 
     ->addAttributeToFilter('type_id', 'configurable') 
     ->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id = entity_id', null, 'left') 
     ->addAttributeToFilter('category_id', array(
      array('finset' => '37') 
      ))     
     ->addAttributeToSort('name', 'asc') 
     ->addAttributeToFilter('diy_kit_price', array('gt' => 0)) 
     ->addAttributeToFilter('diy_kit_price', array('lt' => 5000)) 
     ->addAttributeToFilter('diy_kit_price', array('gt' => 10000)) 
     ->addAttributeToFilter('diy_kit_price', array('lt' => 15000)); 

거기에 다른 방법은 필터링하기 . 여러 가격대로 일반 SQL을 사용하여 필터링 할 수 있습니까?

미리 감사드립니다.

+0

실제로 필터는 0 내지 15000 5000 10000이고 소용되고있다. '(> 0 AND < 5k) OR (> 10k AND <15k)'를 사용해야합니다. 그것이 젠드 쿼리로 변환하지 않고도 할 수 있는지 확실하지 않습니다. – enenen

+1

언급 한 코드를 어떻게 사용할 수 있습니까? 당신은 저에게 모범을 보여 주시겠습니까? – Sivakumar

답변

3

있어 용액 Hurreee ... ... :-) 번째 경우

->addFieldToFilter('diy_kit_price', 
    array(array('from'=>'0','to'=>'5000'), 
    array('from'=>'15000','to'=>'20000')) 
)