Magento addFieldToFilter:两个字段,匹配为 OR,而不是 AND
2022-08-30 11:14:58
在过去的几个小时里,我一直被困在这个上面。我通过在 中破解几行来使它工作,但我宁愿使用适当的解决方案并保持我的核心不变。/lib/Varien/Data/Collection/Db.php
我需要做的就是获取一个集合并按两个或多个字段进行筛选。说,和 .这是我的(没有黑客攻击的不起作用)代码:customer_firstname
remote_ip
Db.php
$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)));
用股票,我尝试了这个:(取自 http://magentoexpert.blogspot.com/2009/12/retrieve-products-with-specific.htmlDb.php
)
$collection->addFieldToFilter(array(
array('name'=>'orig_price','eq'=>'Widget A'),
array('name'=>'orig_price','eq'=>'Widget B'),
));
但这给了我这个错误:
Warning: Illegal offset type in isset or empty in magento/lib/Varien/Data/Collection/Db.php on line 369
如果我用try/catch包装它,那么它会移动到_getConditionSql()中并给出这个错误:
Warning: Invalid argument supplied for foreach() in magento/lib/Varien/Data/Collection/Db.php on line 412
有没有人有任何工作,功能代码来做到这一点?我正在运行Magento 1.9(企业)。谢谢!