Класс OrderByExpression
Объект выражения для предложений ORDER BY
Краткое описание свойств
- $_conditions protected
arrayСписок строк или других объектов выражения, представляющих «ветви» дерева выражения. Например, один ключ массива может выглядеть как «сумма > :значение»
- $_conjunction protected
stringСтрока, используемая для объединения каждого из внутренних выражений, хранящихся в этом объекте, например, «И», «ИЛИ» и т. д.
- $_typeMap protected
Cake\Database\TypeMap|null
Краткое описание методов
-
__clone() public
Клонирует этот объект и его поддерево выражений.
-
__construct() public
Конструктор
-
_addConditions() protected
Вспомогательная функция, используемая для разбиения вложенного массива условий и построения структуры дерева внутри этого объекта для представления всего SQL-выражения.
-
_calculateType() protected
Возвращает имя типа для переданного поля, если оно было сохранено в typeMap.
-
_parseCondition() protected
Парсит строку условий, пытаясь извлечь оператор, если он есть, и, наконец, возвращает либо соответствующий объект QueryExpression, либо просто строковое представление условия. Эта функция отвечает за генерацию заглушек и замену значений на них, при этом сохраняя значение в другом месте для последующей привязки.
-
add() public
Добавляет одно или несколько условий к этому объекту выражения. Условия могут быть выражены в одномерном массиве, что приведет к добавлению всех условий непосредственно на этом уровне дерева, или они могут быть вложены произвольным образом, что приведет к созданию большего количества объектов выражения, которые будут вложены внутрь и настроены на использование указанного союза.
-
addCase() public deprecated
Добавляет новое выражение case в объект выражения.
-
and() public
Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает союз в «И».
-
and_() public deprecated
Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает союз в «И».
-
between() public
Добавляет новое условие в объект выражения в форме «поле BETWEEN от и до».
-
case() public
Возвращает новый объект выражения case.
-
count() public
Возвращает количество внутренних условий, хранящихся в этом выражении. Полезно для определения, является ли этот объект выражения пустым или он сгенерирует непустую строку при компиляции.
-
eq() public
Добавляет новое условие в объект выражения в форме «поле = значение».
-
equalFields() public
Строит условие равенства или присваивания с оберткой идентификатора.
-
exists() public
Добавляет новое условие в объект выражения в форме «СУЩЕСТВУЕТ (...)».
-
getConjunction() public
Получает текущий заданный союз для условий на этом уровне дерева выражения.
-
getDefaultTypes() public
Получает типы по умолчанию текущей карты типов.
-
getTypeMap() public
Возвращает существующую карту типов.
-
gt() public
Добавляет новое условие в объект выражения в форме «поле > значение».
-
gte() public
Добавляет новое условие в объект выражения в форме «поле >= значение».
-
hasNestedExpression() public
Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.
-
in() public
Добавляет новое условие в объект выражения в форме «поле IN (значение1, значение2)».
-
isCallable() public deprecated
Проверяет, является ли вызываемый объект допустимым.
-
isNotNull() public
Добавляет новое условие в объект выражения в форме «поле НЕ NULL».
-
isNull() public
Добавляет новое условие в объект выражения в форме «поле IS NULL».
-
iterateParts() public
Выполняет вызываемую функцию для каждой из частей, составляющих это выражение.
-
like() public
Добавляет новое условие в объект выражения в форме «поле LIKE значение».
-
lt() public
Добавляет новое условие в объект выражения в форме «поле < значение».
-
lte() public
Добавляет новое условие в объект выражения в форме «поле <= значение».
-
not() public
Добавляет новый набор условий на этот уровень дерева и инвертирует окончательный результат, добавив NOT, это будет выглядеть как «НЕ ( (условие1) И (условия2) )», союз зависит от текущего, настроенного для этого объекта.
-
notEq() public
Добавляет новое условие в объект выражения в форме «поле != значение».
-
notExists() public
Добавляет новое условие в объект выражения в форме «НЕ СУЩЕСТВУЕТ (...)».
-
notIn() public
Добавляет новое условие в объект выражения в форме «поле НЕ В (значение1, значение2)».
-
notInOrNull() public
Добавляет новое условие в объект выражения в форме «(поле НЕ В (значение1, значение2) ИЛИ поле IS NULL».
-
notLike() public
Добавляет новое условие в объект выражения в форме «поле НЕ LIKE значение».
-
or() public
Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает союз в «ИЛИ».
-
or_() public deprecated
Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает союз в «ИЛИ».
-
setConjunction() public
Изменяет союз для условий на этом уровне дерева выражения.
-
setDefaultTypes() public
Перезаписывает соответствия типов по умолчанию для полей в реализующем объекте.
-
setTypeMap() public
Создает новую карту типов, если $typeMap является массивом, иначе меняет ее на заданную.
-
sql() public
Преобразует узел в фрагмент SQL-строки.
-
traverse() public
Итерируется по каждой части выражения рекурсивно для каждого уровня дерева выражений и выполняет вызываемую функцию $callback, передавая в качестве первого параметра экземпляр выражения, по которому в данный момент итерируется.
Подробное описание методов
__clone() public
__clone(): void
Клонирует этот объект и его поддерево выражений.
Returns
void__construct() public
__construct(Cake\Database\ExpressionInterface|array|string $conditions = [], Cake\Database\TypeMap|array $types = [], string $conjunction = '')
Конструктор
Parameters
-
Cake\Database\ExpressionInterface|array|string$conditions optional Столбцы сортировки
-
Cake\Database\TypeMap|array$types optional Типы для каждого столбца.
-
string$conjunction optional Соединитель, используемый для объединения условий.
_addConditions() protected
_addConditions(array $conditions, array<string, string> $types): void
Вспомогательная функция, используемая для разложения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления полного SQL-выражения.
Новые выражения order by объединяются с существующими
Parameters
-
array$conditions список выражений order by
-
array<string, string>$types список типов, связанных с полями, на которые ссылаются в $conditions
Returns
void_calculateType() protected
_calculateType(Cake\Database\ExpressionInterface|string $field): string|null
Возвращает имя типа для переданного поля, если оно было сохранено в typeMap
Parameters
-
Cake\Database\ExpressionInterface|string$field Имя поля, для которого нужно получить тип.
Returns
string|null_parseCondition() protected
_parseCondition(string $field, mixed $value): Cake\Database\ExpressionInterface
Разбирает строковые условия, пытаясь извлечь оператор внутри них, если таковые имеются, и, наконец, возвращая либо соответствующий объект QueryExpression, либо простое строковое представление условия. Эта функция отвечает за создание заполнителей и замену значений ими, сохраняя значение в другом месте для последующего связывания.
Parameters
-
string$field Значение, из которого будут извлечены фактическое поле и оператор.
-
mixed$value Значение, которое будет привязано к заполнитель для поля
Returns
Cake\Database\ExpressionInterfaceThrows
InvalidArgumentExceptionЕсли оператор недействителен или отсутствует при использовании NULL.
add() public
add(Cake\Database\ExpressionInterface|array|string $conditions, array<string, string> $types = []): $this
Добавляет одно или несколько условий к этому объекту выражения. Условия могут быть выражены в одномерном массиве, который приведет к тому, что все условия будут добавлены непосредственно на этом уровне дерева, или они могут быть вложены произвольно, заставляя его создавать больше объектов выражений, которые будут вложены внутри и настроены на использование указанного союза.
Если тип, переданный для любого из полей, выражается как "type[]" (обратите внимание на фигурные скобки), это приведет к тому, что заполнитель будет переписан динамически, поэтому, если значение представляет собой массив, он создаст столько заполнителей, сколько в нем значений.
Parameters
-
Cake\Database\ExpressionInterface|array|string$conditions одно или несколько условий, которые нужно добавить. При использовании массива и ключа 'OR' или 'AND' будет создан новый объект выражения с этим союзом и внутренним значением массива, переданным в качестве условий.
-
array<string, string>$types optional Ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильного связывания значений с операторами.
Returns
$thisSee Also
addCase() public
addCase(Cake\Database\ExpressionInterface|array $conditions, Cake\Database\ExpressionInterface|array $values = [], array<string> $types = []): $this
Добавляет новое выражение case к объекту выражения
Parameters
-
Cake\Database\ExpressionInterface|array$conditions Условия для проверки. Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
-
Cake\Database\ExpressionInterface|array$values optional Ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если $values больше, чем $conditions, последнее значение $value используется в качестве значения
ELSE.-
array<string>$types optional Ассоциативный массив типов, которые будут связаны со значениями, переданными в $values
Returns
$thisand() public
and(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и настраивающий союз на "AND"
Parameters
-
Cake\Database\ExpressionInterfaceClosure|array|string$conditions для соединения с AND
-
array<string, string>$types optional Ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильного связывания значений с операторами.
Returns
Cake\Database\Expression\QueryExpressionand_() public
and_(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и настраивающий союз на "AND"
Parameters
-
Cake\Database\ExpressionInterfaceClosure|array|string$conditions для соединения с AND
-
array<string, string>$types optional Ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильного связывания значений с операторами.
Returns
Cake\Database\Expression\QueryExpressionbetween() public
between(Cake\Database\ExpressionInterface|string $field, mixed $from, mixed $to, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле BETWEEN from AND to".
Parameters
-
Cake\Database\ExpressionInterface|string$field Имя поля для сравнения значений внутри диапазона.
-
mixed$from Начальное значение диапазона.
-
mixed$to Конечное значение в диапазоне сравнения.
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Returns
$thiscase() public
case(Cake\Database\ExpressionInterface|object|scalar|null $value = null, string|null $type = null): Cake\Database\Expression\CaseStatementExpression
Возвращает новый объект выражения case.
Когда значение установлено, генерируется синтаксис CASE case_value WHEN when_value ... END (простой case), где when_value сравниваются с case_value.
Когда значение не установлено, генерируется синтаксис CASE WHEN when_conditions ... END (searched case), где условия содержат сравнения.
Обратите внимание, что null является допустимым значением case и, таким образом, должно передаваться только в том случае, если вы действительно хотите создать вариант выражения простого case!
Parameters
-
Cake\Database\ExpressionInterface|object|scalar|null$value optional Значение case.
-
string|null$type optional Тип значения case. Если тип не указан, тип будет пытаться вывести из значения.
Returns
Cake\Database\Expression\CaseStatementExpressioncount() public
count(): int
Возвращает количество внутренних условий, хранящихся в этом выражении. Полезно для определения того, является ли этот объект выражения пустым или он будет генерировать непустую строку при компиляции
Returns
inteq() public
eq(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле = значение".
Parameters
-
Cake\Database\ExpressionInterface|string$field Поле базы данных для сравнения со значением
-
mixed$value Значение, которое будет привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов. Если к нему добавлен суффикс "[]" и значение представляет собой массив, то будет создано несколько заполнителей, по одному на каждое значение в массиве.
Returns
$thisequalFields() public
equalFields(string $leftField, string $rightField): $this
Создает условие равенства или присваивание с оберткой идентификатора.
Parameters
-
string$leftField Имя поля левого условия соединения.
-
string$rightField Имя поля правого условия соединения.
Returns
$thisexists() public
exists(Cake\Database\ExpressionInterface $expression): $this
Добавляет новое условие к объекту выражения в форме «EXISTS (...)».
Параметры
-
Cake\Database\ExpressionInterface$expression внутренний запрос
Возвращаемое значение
$thisgetConjunction() public
getConjunction(): string
Возвращает текущую конъюнкцию, сконфигурированную для условий на этом уровне дерева выражений.
Возвращаемое значение
stringgetDefaultTypes() public
getDefaultTypes(): array<string, string>
Возвращает типы по умолчанию из текущей карты типов.
Возвращаемое значение
array<string, string>getTypeMap() public
getTypeMap(): Cake\Database\TypeMap
Возвращает существующую карту типов.
Возвращаемое значение
Cake\Database\TypeMapgt() public
gt(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме «поле > значение».
Параметры
-
Cake\Database\ExpressionInterface|string$field Базовое поле для сравнения со значением
-
mixed$value Значение, которое будет привязано к полю для сравнения
-
string|null$type optional имя типа для значения, настроенное с помощью карты типов.
Возвращаемое значение
$thisgte() public
gte(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме «поле >= значение».
Параметры
-
Cake\Database\ExpressionInterface|string$field Базовое поле для сравнения со значением
-
mixed$value Значение, которое будет привязано к полю для сравнения
-
string|null$type optional имя типа для значения, настроенное с помощью карты типов.
Возвращаемое значение
$thishasNestedExpression() public
hasNestedExpression(): bool
Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.
Возвращаемое значение
boolin() public
in(Cake\Database\ExpressionInterface|string $field, Cake\Database\ExpressionInterface|array|string $values, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме «поле IN (значение1, значение2)».
Параметры
-
Cake\Database\ExpressionInterface|string$field Базовое поле для сравнения со значением
-
Cake\Database\ExpressionInterface|array|string$values значение, которое будет привязано к полю для сравнения
-
string|null$type optional имя типа для значения, настроенное с помощью карты типов.
Возвращаемое значение
$thisisCallable() public
isCallable(Cake\Database\ExpressionInterface|callable|array|string $callable): bool
Проверяет, является ли вызов допустимым.
Мы не принимаем обратные вызовы типа ['класс', 'метод'], так как они часто содержат пользовательский ввод, а массивы строк легко внедрить.
Параметры
-
Cake\Database\ExpressionInterface|callable|array|string$callable Вызов для проверки.
Возвращаемое значение
boolisNotNull() public
isNotNull(Cake\Database\ExpressionInterface|string $field): $this
Добавляет новое условие к объекту выражения в форме «поле НЕ NULL».
Параметры
-
Cake\Database\ExpressionInterface|string$field поле базы данных, проверяемое на непустоту
Возвращаемое значение
$thisisNull() public
isNull(Cake\Database\ExpressionInterface|string $field): $this
Добавляет новое условие к объекту выражения в форме «поле IS NULL».
Параметры
-
Cake\Database\ExpressionInterface|string$field поле базы данных, проверяемое на пустоту
Возвращаемое значение
$thisiterateParts() public
iterateParts(callable $callback): $this
Выполняет функцию вызова для каждой части, формирующей данное выражение.
Функция вызова должна возвращать значение, которым будет заменена текущая посещаемая часть. Если функция вызова возвращает null, то часть полностью удаляется из этого выражения.
Функция обратного вызова получит каждое из условий в качестве первого параметра и ключ во втором. Можно объявить второй параметр как передаваемый по ссылке, что позволит изменить ключ, под которым хранится измененная часть.
Параметры
-
callable$callback Вызов для применения к каждой части.
Возвращаемое значение
$thislike() public
like(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме «поле LIKE значение».
Параметры
-
Cake\Database\ExpressionInterface|string$field Базовое поле для сравнения со значением
-
mixed$value Значение, которое будет привязано к полю для сравнения
-
string|null$type optional имя типа для значения, настроенное с помощью карты типов.
Возвращаемое значение
$thislt() public
lt(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме «поле < значение».
Параметры
-
Cake\Database\ExpressionInterface|string$field Базовое поле для сравнения со значением
-
mixed$value Значение, которое будет привязано к полю для сравнения
-
string|null$type optional имя типа для значения, настроенное с помощью карты типов.
Возвращаемое значение
$thislte() public
lte(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме «поле <= значение».
Параметры
-
Cake\Database\ExpressionInterface|string$field Базовое поле для сравнения со значением
-
mixed$value Значение, которое будет привязано к полю для сравнения
-
string|null$type optional имя типа для значения, настроенное с помощью карты типов.
Возвращаемое значение
$thisnot() public
not(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): $this
Добавляет новый набор условий на этот уровень дерева и инвертирует конечный результат, добавив NOT. Это будет выглядеть как «НЕ ( (условие1) И (условия2) )». Конъюнкция зависит от текущей, сконфигурированной для этого объекта.
Параметры
-
Cake\Database\ExpressionInterfaceClosure|array|string$conditions для добавления и инвертирования
-
array<string, string>$types optional Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращаемое значение
$thisnotEq() public
notEq(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме «поле != значение».
Параметры
-
Cake\Database\ExpressionInterface|string$field Базовое поле для сравнения со значением
-
mixed$value Значение, которое будет привязано к полю для сравнения
-
string|null$type optional имя типа для значения, настроенное с помощью карты типов. Если оно заканчивается на «[]» и значение является массивом, то будет создано несколько заглушек, по одной на каждое значение в массиве.
Возвращаемое значение
$thisnotExists() public
notExists(Cake\Database\ExpressionInterface $expression): $this
Добавляет новое условие к объекту выражения в виде "NOT EXISTS (...)".
Параметры
-
Cake\Database\ExpressionInterface$expression внутренний запрос
Возвращает
$thisnotIn() public
notIn(Cake\Database\ExpressionInterface|string $field, Cake\Database\ExpressionInterface|array|string $values, string|null $type = null): $this
Добавляет новое условие к объекту выражения в виде "поле НЕ В (значение1, значение2)".
Параметры
-
Cake\Database\ExpressionInterface|string$field Поле базы данных, которое сравнивается со значением
-
Cake\Database\ExpressionInterface|array|string$values значение, которое должно быть привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено в Type map.
Возвращает
$thisnotInOrNull() public
notInOrNull(Cake\Database\ExpressionInterface|string $field, Cake\Database\ExpressionInterface|array|string $values, string|null $type = null): $this
Добавляет новое условие к объекту выражения в виде "(поле НЕ В (значение1, значение2) ИЛИ поле IS NULL)".
Параметры
-
Cake\Database\ExpressionInterface|string$field Поле базы данных, которое сравнивается со значением
-
Cake\Database\ExpressionInterface|array|string$values значение, которое должно быть привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено в Type map.
Возвращает
$thisnotLike() public
notLike(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в виде "поле НЕ ПОДОБНО значение".
Параметры
-
Cake\Database\ExpressionInterface|string$field Поле базы данных, которое сравнивается со значением
-
mixed$value Значение, которое должно быть привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено в Type map.
Возвращает
$thisor() public
or(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливающий конъюнкцию в "ИЛИ".
Параметры
-
Cake\Database\ExpressionInterfaceClosure|array|string$conditions для объединения с ИЛИ
-
array<string, string>$types optional Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
Cake\Database\Expression\QueryExpressionor_() public
or_(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливающий конъюнкцию в "ИЛИ".
Параметры
-
Cake\Database\ExpressionInterfaceClosure|array|string$conditions для объединения с ИЛИ
-
array<string, string>$types optional Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
Cake\Database\Expression\QueryExpressionsetConjunction() public
setConjunction(string $conjunction): $this
Изменяет конъюнкцию для условий на данном уровне дерева выражения.
Параметры
-
string$conjunction Значение, используемое для объединения условий
Возвращает
$thissetDefaultTypes() public
setDefaultTypes(array<string, string> $types): $this
Перезаписывает стандартные сопоставления типов для полей в реализующем объекте.
Этот метод полезен, если вам нужно установить сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.
Чтобы добавить значение по умолчанию без перезаписи существующих, используйте getTypeMap()->addDefaults()
Параметры
-
array<string, string>$types Массив типов для установки.
Возвращает
$thisСм. также
setTypeMap() public
setTypeMap(Cake\Database\TypeMap|array $typeMap): $this
Создает новый TypeMap, если $typeMap является массивом, в противном случае обменивает его на заданный.
Параметры
-
Cake\Database\TypeMap|array$typeMap Создает TypeMap, если массив, иначе устанавливает заданный TypeMap
Возвращает
$thissql() public
sql(Cake\Database\ValueBinder $binder): string
Преобразует узел в фрагмент SQL-строки.
Параметры
-
Cake\Database\ValueBinder$binder
Возвращает
stringtraverse() public
traverse(Closure $callback): $this
Итерируется по каждой части выражения рекурсивно для каждого уровня дерева выражений и выполняет вызываемый объект $callback, передавая в качестве первого параметра экземпляр выражения, по которому в данный момент происходит итерация.
Параметры
-
Closure$callback
Возвращает
$thisПодробное описание свойств
$_conditions protected
Список строк или других объектов выражения, представляющих "ветви" дерева выражения. Например, один ключ массива может выглядеть так: "сумма > :значение"
Тип
array$_conjunction protected
Строка, используемая для объединения каждого из внутренних выражений, которые этот объект хранит внутри, например, "И", "ИЛИ" и т.д.
Тип
string$_typeMap protected
Тип
Cake\Database\TypeMap|null
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.3/class-Cake.Database.Expression.OrderByExpression.html