Magento上的复杂布尔条件

时间:2012-09-18 08:00:13

标签: magento boolean

我在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上这样做?感谢

1 个答案:

答案 0 :(得分:2)

您的语法不正确,请尝试以下操作:

Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter(
    array(
        array('attribute'=>'firstname', 'like'=>'test%'),
        array('attribute'=>'lastname', 'like'=>'test%'),
    )
)

你可以用'sku'或你想要的东西替换属性名称。每个数组条目都是OR'd。