我想根据不同属性的几个标准选择产品。
我知道如何使用$collection->addAttributeToFilter('someattribute', array('like' => '%'));
但是我想为 OR 条件使用几个属性。
像:
$collection->addAttributeToFilter('someattribute', array('like' => 'value'));`
OR
$collection->addAttributeToFilter('otherattribute', array('like' => 'value'));`
要获得“某些属性”或''分配'设置为'价值'的产品
有可能吗?
答案 0 :(得分:57)
是的。
$collection->addAttributeToFilter(
array(
array('attribute' => 'someattribute', 'like' => 'value'),
array('attribute' => 'otherattribute', 'like' => 'value'),
array('attribute' => 'anotherattribute', 'like' => 'value'),
)
);
答案 1 :(得分:11)
如果您希望对不使用EAV的集合使用相同的addFieldToFilter函数,则可以使用以下格式:
$collection->addFieldToFilter(
array(
'someattribute',
'otherattribute',
'anotherattribute',
),
array(
array('like' => 'value'),
array('like' => 'value'),
array('like' => 'value'),
));
答案 2 :(得分:4)
要实现'OR'的另一个目的是:
->addFieldToFilter(
'type_id',
['in' => ['simple', 'configurable']]
)
答案 3 :(得分:2)
对于addAttributeToFilter:
$collections = Mage::getModel('sales/order')->getCollection()
->addAttributeToFilter('increment_id', array('in' => $sellerIncrementIds))
->addAttributeToFilter('status', ['in' => ['pending','pending_seller_confirmation']]);