2011-11-08 8 views
4

Magentoクエリで2つのフィールドを比較するにはどうすればよいですか?私は私がどこかで見つけたこのコードを使用しているすべての私のアクティブな特産品を取得してい

$collection = $this->_addProductAttributesAndPrices($collection) 
->addStoreFilter() 
->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate)) 
->addAttributeToFilter('special_to_date', array('or'=> array(
    0 => array('date' => true, 'from' => $todayDate), 
    1 => array('is' => new Zend_Db_Expr('null'))) 
), 'left') 
->setPageSize($this->get_prod_count()) 
->setCurPage($this->get_cur_page()); 

は、今私は、しかし、私はまだ」することができ、特別価格< =価格を持っている製品のみを取得したいですどのようにそれを行う実現する。私はこのページを読んでいる

http://www.magentocommerce.com/wiki/5_-_modules_and_development/catalog/using_collections_in_magento

と私は成功せず、これを試してみました:あなたの助けのための

 ->addAttributeToFilter('special_price', array('lt' => 'price')) 

感謝を!

+0

第二パラメータ '価格' であります文字列として扱われています – Nasaralla

+0

そうです、それが私が求めている理由です、私はそれらの値を比較する正しい方法を知らない – Shaz

答えて

6

あなたがthisを試すことができます...

$products = array(); 
$collection = Mage::getResourceModel('catalog/product_collection'); 
foreach($collection as $col) { 
    $product = Mage::getModel('catalog/product')->load($col->getId()); 
    if($product->getPrice() > $product->getSpecialPrice()) { 
     $products[] = $product; 
    } 
} 

あなたは最終的には製品の配列を持つことになり、コレクションを反復処理するZyavaに感謝することでしょう!私の場合で

- > addAttributeToFilter( '価格'、アレイ( 'GT' =>新しいはZend_Db_Expr( 'final_price')))

0

あまり効率的なソリューションは、

関連する問題

 関連する問題