Сложный фильтр в коллекции


Я хотел бы использовать addFieldToFilter (или другой...) в коллекции, чтобы создать этот фильтр:

(элемент1 = 'значение' И (элемент2 = 'значение1' ИЛИ элемент = 'значение2')) ИЛИ (элемент2 = 'значение3' ИЛИ элемент = 'значение4')

Author: brentwpeterson, 2014-12-02

1 answers

Всякий раз, когда я имею дело со сложными фильтрами, я предпочитаю работать с базовым объектом Zend_Db_Select. Например:

$collection
    ->getSelect()
    ->where(
        new Zend_Db_Expr("(item1 = '?' AND (item2 = '?' OR item = '?')) OR (item2 = '?' OR item = '?')"), 
        'value1', 
        'value2', 
        'value3', 
        'value4'
    );
 1
Author: Rick Buczynski, 2014-12-02 14:54:39