Developers/Conditions for searching/ru

Условия для поиска
Метод searchItems всех менеджеров требует объект критерия поиска, используемый для ограничения результата необходимыми записями. Условия записываются в абстрактных обозначениях, которые переводятся в реальные обозначения используемого хранилища (например, SQL для базы данных) перед отправкой запроса менеджеру хранилища (серверу базы данных в случае SQL).

Имеется два типа доступных операторов, одни для сравнения значений элементов, другие — для комбинации одного или нескольких условий (сравнение или комбинация условий).

Список операторов комбинации:
 * "&&": условие1 И условие2 (И условие3)*
 * "||": условие1 ИЛИ условие2 (ИЛИ условие3)*
 * "!": НЕ условие (допустимо лишь одно условие)

Список операторов сравнения:
 * "==": элемент ЭКВИВАЛЕНТЕН значению (или списку значений);
 * "!=": элемент НЕ ЭКВИВАЛЕНТЕН значению (или списку значений);
 * "~=": элемент ПОДОБЕН значению;
 * ">=": элемент БОЛЬШЕ ИЛИ РАВЕН значению;
 * "<=": элемент МЕНЬШЕ ИЛИ РАВЕН значению;
 * ">": элемент БОЛЬШЕ значения;
 * "<": элемент МЕНЬШЕ значения;

При помощи этих операторов можно построить условия любой сложности, например,

В этом блоке кода ищутся все товары, ID которых находится в списке ID и имеющие время изменения позже 2012. Результат можно ограничить условиями по умолчанию (фильтруемыми по "product.status", "product.datestart" и "product.dateend"), так как вызывается параметр "true" в createSearch и $search->getConditions как первое выражение.