作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在过去的几个小时里,我一直被困在这个问题上。我通过修改 /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)));
使用股票 Db.php
,我尝试了这个:(样本取自 http://magentoexpert.blogspot.com/2009/12/retrieve-products-with-specific.html)
$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(企业版)。谢谢!
最佳答案
我还有另一种方法可以在字段中添加 or
条件:
->addFieldToFilter(
array('title', 'content'),
array(
array('like'=>'%$titlesearchtext%'),
array('like'=>'%$contentsearchtext%')
)
)
关于php - Magento addFieldToFilter : Two fields, 匹配为 OR,而不是 AND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3826474/
我是一名优秀的程序员,十分优秀!