Magento addFieldToFilter: İki alanlar, OR gibi maç değil, VE

0 Cevap php

Ben son birkaç saat boyunca bu sıkışmış oldum. Ben / lib / Varien / Veri / Koleksiyon / Db.php birkaç satır hack ile çalışma var, ama ben oldukça uygun çözümü kullanmak ve benim çekirdek bakir terk ediyorum.

Yapmam gereken bir koleksiyon almak ve iki veya daha fazla alana göre filtreleme değildir. , Customer_firstname ve remote_ip söylüyorlar. İşte benim (Db.php hack olmadan işlemeyen) kodu bulunuyor:

$collection = Mage::getModel('sales/order')->getCollection()->
addAttributeToSelect("*")->
addFieldToFilter(array(array('remote_ip', array('eq'=>'127.0.0.1')),
array('customer_firstname', array('eq'=>'gabe'))), array('eq'=>array(1,2,3)));

Bir hisse senedi Db.php, ben bu çalıştı: (örnek http://magentoexpert.blogspot.com/2009/12/retrieve-products-with-specific.html alınan)

$collection->addFieldToFilter(array(
    array('name'=>'orig_price','eq'=>'Widget A'),
    array('name'=>'orig_price','eq'=>'Widget B'),           
));

Ama bana bu hatayı veriyor:

Warning: Illegal offset type in isset or empty  in magento/lib/Varien/Data/Collection/Db.php on line 369

Ben bir try / catch ile bu şal, o _getConditionSql () içine taşır ve bu hatayı veriyor:

Warning: Invalid argument supplied for foreach()  in magento/lib/Varien/Data/Collection/Db.php on line 412

Herkes bunu için herhangi bir çalışma, fonksiyonel kod var mı? Ben Magento 1.9 (Enterprise) koşuyorum. Teşekkürler!

0 Cevap