我在magento教程中找不到这个问题的解决方案。 当涉及两个属性时,如何在自定义模型中实现布尔OR运算符?官方教程中的示例仅演示了对一个字段sku。
使用OR布尔值$filter_a = array('like'=>'a%');
$filter_b = array('like'=>'b%');
Mage::getModel('catalog/product')
->getCollection()
->addFieldToFilter('sku', array($filter_a, $filter_b))
->getSelect();
这转换为
WHERE e.sku like 'a%' or e.sku like 'b%'
但是如果我需要运行条件如下:
WHERE (e.sku like 'a%' or e.sku like 'b%') or (table_price.value >= '10' )
我怎样才能在Magento上这样做?感谢
答案 0 :(得分:2)
您的语法不正确,请尝试以下操作:
Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter(
array(
array('attribute'=>'firstname', 'like'=>'test%'),
array('attribute'=>'lastname', 'like'=>'test%'),
)
)
你可以用'sku'或你想要的东西替换属性名称。每个数组条目都是OR'd。