我在 magento 教程中找不到此问题的解决方案。 当涉及两个属性时,如何在自定义模型中实现 boolean 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 上执行此操作?谢谢
最佳答案
您的语法不正确,请尝试以下操作:
Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter(
array(
array('attribute'=>'firstname', 'like'=>'test%'),
array('attribute'=>'lastname', 'like'=>'test%'),
)
)
您可以将属性名称替换为“sku”或您想要的任何名称。每个数组条目都将进行“或”运算。
关于magento - Magento 上的复杂 boolean 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12472713/