2

我在 magento 教程中找不到这个问题的解决方案。当涉及两个属性时,如何在自定义模型中实现布尔 OR 运算符?官方教程中的示例仅演示了对一个字段 sku 使用 OR boolean。

$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 上做到这一点?谢谢

4

1 回答 1

2

你的语法不正确,试试这个:

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

您可以将属性名称替换为“sku”或您想要的任何内容。每个数组条目都将是 OR'd。

于 2012-09-18T08:21:09.013 回答