CDbCriteria. Методы

addBetweenCondition()

addBetweenCondition(string $column, string $valueStart, string $valueEnd, string $operator='AND')
$columnимя столбца поиска
$valueStartначальное значение диапазона
$valueEndконечное значение диапазона
$operatorоператор, используемый для соединения нового условия с имеющимся. По умолчанию - 'AND'
Добавляет условие between (диапазон). Новое условие диапазон и имеющееся будут соединены определенным оператором, по умолчанию - оператор 'AND'. Если одно или оба значения пусты, то условие не будет добавлено к существующему. Данный метод обрабатывает случай, при котором существующее условие пусто. После вызова данного метода, свойство condition будет изменено

addColumnCondition()

addColumnCondition($columns,$columnOperator='AND',$operator='AND')
$columnsсписок имен слолбцов и сравниваемых значений (имя => значение)
$columnOperatorоператор для соединения нескольких столбцов в условии сравнения. По умолчанию - 'AND'
$operatorоператор, используемый для соединения нового условия с имеющимся. По умолчанию - 'AND'
Добавляет условие для сравнения переданного списка со значениями столбцов. Данное условие и имеющееся будут соединены определенным оператором, по умолчанию - оператор 'AND'. Условие генерируется сравнением каждого столбца соответствующему значению

addCondition()

addCondition(mixed $condition, string $operator='AND')
$conditionновое условие. Может быть либо строкой либо массивом строк
$operatorоператор соединения отдельных условий. По умолчанию - 'AND'
Добавляет условие к уже имеющемуся (condition). Новое условие и имеющееся будут соединены определенным оператором, по умолчанию - это оператор 'AND'. Новое условие может быть массивом. В этом случае все элементы массива будут соединены оператором. Данный метод обрабатывает случай, когда существующее условие пусто. После вызова метода, свойство condition будет изменено

addInCondition()

addInCondition(string $column, array $values, string $operator='AND')
$columnимя столбца (или допустивое SQL-выражение)
$valuesсписок значений, среди которых должно быть значение столбца
$operatorоператор, используемый для соединения нового условия с имеющимся. По умолчанию - 'AND'
Добавляет условие IN к уже имеющемуся (condition). Условие IN и имеющееся будут соединены определенным оператором, по умолчанию - оператор 'AND'. Условие IN генерируется с использованием SQL-оператора IN, требующим, чтобы значение определенного столбца находилось в переданном списке значений

addNotInCondition()

addNotInCondition(string $column, array $values, string $operator='AND')
$columnимя столбца (или допустивое SQL-выражение)
$valuesсписок значений, среди которых НЕ должно быть значение столбца
$operatorоператор, используемый для соединения нового условия с имеющимся. По умолчанию - 'AND'
Добавляет условие NOT IN к уже имеющемуся (condition). Условие NOT IN и имеющееся будут соединены определенным оператором, по умолчанию - оператор 'AND'. Условие IN генерируется с использованием SQL-оператора IN, требующим, чтобы значение определенного столбца НЕ находилось в переданном списке значений

addSearchCondition()

addSearchCondition(string $column, string $keyword, boolean $escape=true, string $operator='AND', string $like='LIKE')
$columnимя столбца (или допустимое SQL-выражение)
$keywordслово для поиска. This interpretation of the keyword is affected by the next parameter.
$escapeэкранировать ли слово для поиска, если оно содержит символы % или _. Если данный параметр имеет значение true (dпо умолчанию), специальные символы % (обозначает 0 или более символов) и _ (обозначает 1 символ) будут экранированы, а слово для поиска будет окружено символом % с обоих концов. Если данный параметр имеет значение false, слово по умолчанию будет напрямую использоваться для поиска соответствий без каких-либо изменений.
$operatorоператор, используемый для соединения нового условия с имеющимся. По умолчанию - 'AND'
$likeоператор LIKE. По умолчанию - 'LIKE'. Можно установить в значение 'NOT LIKE'
Добавляет условие поиска к уже имеющемуся (condition). Условие поиска и имеющееся будут соединены определенным оператором, по умолчанию - оператор 'AND'. Условие поиска генерируется с использованием SQL-оператора LIKE с переданным именем и словом для поиска

compare()

compare(string $column, mixed $value, boolean $partialMatch=false, string $operator='AND', boolean $escape=true)
$columnимя столбца для поиска
$valueзначение, с которым производится сравнение. Если значение является строкой, то будет выполнено интеллектуальное сравнение. Если значение - это массив, то производится точное сравнение по каждому элементу массива. Если параметр пуст, то существующее условие поиска не будет изменено
$partialMatchнадо ли проверять значение на частичное совпадение (используя операторы LIKE и NOT LIKE). По умолчанию - false, т.е., проверяется точное совпадение
$operatorоператор, используемый для соединения нового условия с имеющимся. По умолчанию - 'AND'
$escapeдолжно ли значение экранироваться, если свойство $partialMatch уставнолено в значение true и значение содержит символы % или _. Если данный параметр установлен в значение true (по умолчанию), то специальные символы % (соответствует 0 или более символам) и _ (соответствует единственному символу) будут экранированы и значение будет окружено символами % с обеих сторон. Если данный параметр имеет значение false, то значение будет использовано для поиска соответствий напрямую без изменений
Добавляет выражение сравнения к свойству condition. Данный метод - это хелпер, добавляющий новое выражение сравнения к свойству condition. Действие производится сравнением столбца с переданным значением с использованием некоторого оператора сравнения. Оператор сравнения определеляется интеллектуально на основе первых нескольких символов переданного значения. В частности, распознаются следующие операторы, стоящие в начале переданного значения:
  • <: значение столбца должно быть меньше переданного значения;
  • >: значение столбца должно быть больше переданного значения;
  • <=: значение столбца должно быть меньше либо равно переданному значению;
  • >=: значение столбца должно быть больше либо равно переданному значению;
  • <>: значение столбца не должно равняться переданному значению. Примечание: если параметр $partialMatch равен значению true, то значение не должно являться подстрокой значения столбца;
  • =: значение столбца должно равняться переданному значению;
  • ни один из вышеперечисленных: значение столбца должно равняться переданному значению. Примечание: если параметр $partialMatch равен значению true, то значение столбца должно быть таким же, как переданое значение или быть подстрокой переданного значения.
Примечание: окружающие пробелы будут удалены из значения перед сравнением. Если значение пусто, выражение сравнения не будет добавлено к условию поиска.

mergeWith()

mergeWith(mixed $criteria, boolean $useAnd=true)
$criteriaкритерий, с котором производится слияние. Может быть массивом или объектом класса CDbCriteria
$useAndиспользовать ли оператор 'AND' для слияния условий и их опций. Если значение равно false, то будет использоваться оператор 'OR'. По умолчанию - true
Сливает критерий с другим. В основном, слияние делает результирующий критерий более ограничивающим. Например, если оба критерия имеют условия, вместе они будут слиты оператором 'AND'. Также, критерий, переданный в метод в качестве параметра, имеет преимущество в случае, когда пара опций не может быть слита (например, LIMIT, OFFSET)

toArray()

представление критерия в виде массива


Примеры

$criteria = new CDbCriteria();
$criteria->addBetweenCondition('price', '500', '1500');
$criteria->addColumnCondition(array('timecreate'=>'2012-05-25', 'state'=>'2'), 'OR')
$criteria->addCondition("user_id <= :userId OR user_id = '5'");
$criteria->addInCondition('id', array('1', '3', '5', '10', '16'), 'OR');
$criteria->addNotInCondition('id', array('8', '9', '12'));
$criteria->addSearchCondition('title', 'Example text', true, 'LIKE');

$criteria1 = new CDbCriteria();
$criteria1->condition = 'state=1';
$criteria->mergeWith($criteria1, 'OR');

Комментарии

Отправить комментарий

Популярные сообщения