AddAttributeToFilter и условие OR в коллекции Magento
Я хотел бы выбрать продукты в зависимости от нескольких критериев от разных атрибутов.
Я знаю, как пользователю $collection->addAttributeToFilter('someattribute', array('like' => '%'));
Но я бы хотел использовать несколько атрибутов для условия ИЛИ.
Как
$collection->addAttributeToFilter('someattribute', array('like' => 'value'));`
ИЛИ
$collection->addAttributeToFilter('otherattribute', array('like' => 'value'));`
Чтобы получить продукты, которые либо "someattribute" OR "otherattribute" установлены на "value"
Возможно ли это?
Ответы
Ответ 1
да, это так.
$collection->addAttributeToFilter(
array(
array('attribute' => 'someattribute', 'like' => 'value'),
array('attribute' => 'otherattribute', 'like' => 'value'),
array('attribute' => 'anotherattribute', 'like' => 'value'),
)
);
Ответ 2
Если вы хотите использовать то же самое для функции addFieldToFilter для коллекций, которые не используют EAV, вы можете использовать следующий формат:
$collection->addFieldToFilter(
array(
'someattribute',
'otherattribute',
'anotherattribute',
),
array(
array('like' => 'value'),
array('like' => 'value'),
array('like' => 'value'),
));
Ответ 3
Еще одна вещь, на которую нужно обратить внимание, - это:
->addFieldToFilter(
'type_id',
['in' => ['simple', 'configurable']]
)
Ответ 4
Для addAttributeToFilter:
$collections = Mage::getModel('sales/order')->getCollection()
->addAttributeToFilter('increment_id', array('in' => $sellerIncrementIds))
->addAttributeToFilter('status', ['in' => ['pending','pending_seller_confirmation']]);