Spec-Zone.ru › CakePHP 4.4

Класс OrderByExpression

Объект выражения для оператора ORDER BY

Пространство имён: Cake\Database\Expression

Краткое описание свойств

  • $_conditions protected
    array

    Список строк или других объектов выражения, представляющих «ветви» дерева выражения. Например, один ключ массива может выглядеть как "sum > :value"

  • $_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

    Добавляет новое условие в объект выражения в виде «поле В (значение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<int|string, string> $types): void

Вспомогательная функция, используемая для разложения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления полного SQL-выражения.

Новые выражения order by объединяются с существующими

Parameters

array $conditions

Список выражений order by

array<int|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\ExpressionInterface

Throws

InvalidArgumentException
Если оператор недействителен или отсутствует при использовании NULL.

add() public

add(Cake\Database\ExpressionInterface|array|string $conditions, array<int|string, string> $types = []): $this

Добавляет одно или несколько условий к этому объекту выражения. Условия могут быть выражены в одномерном массиве, что приведет к добавлению всех условий непосредственно на этом уровне дерева, или они могут быть вложены произвольно, что приведет к созданию большего количества объектов выражений, которые будут вложены внутрь и настроены на использование указанного союза.

Если тип, переданный для любого из полей, выражен как "type[]" (обратите внимание на фигурные скобки), то это приведет к тому, что заполнитель будет переписан динамически, поэтому, если значение является массивом, он создаст столько заполнителей, сколько значений в нем.

Parameters

Cake\Database\ExpressionInterface|array|string $conditions

одно или несколько условий, которые нужно добавить. При использовании массива и ключом 'OR' или 'AND' будет создан новый объект выражения с этим союзом и внутренним значением массива, переданным в качестве условий.

array<int|string, string> $types optional

Ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильного связывания значений с операторами.

Returns

$this

See Also

\Cake\Database\Query::where() для примеров условий

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

$this

and() 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\QueryExpression

and_() 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\QueryExpression

between() public

between(Cake\Database\ExpressionInterface|string $field, mixed $from, mixed $to, string|null $type = null): $this

Добавляет новое условие к объекту выражения в форме "поле BETWEEN от И до".

Parameters

Cake\Database\ExpressionInterface|string $field

Имя поля для сравнения значений в пределах диапазона.

mixed $from

Начальное значение диапазона.

mixed $to

Конечное значение в диапазоне сравнения.

string|null $type optional

имя типа для $value, как настроено с помощью карты типов.

Returns

$this

case() 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\CaseStatementExpression

count() public

count(): int

Возвращает количество внутренних условий, хранящихся в этом выражении. Полезно для определения того, является ли этот объект выражения пустым или он сгенерирует непустую строку при компиляции

Returns

int

eq() 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

$this

equalFields() public

equalFields(string $leftField, string $rightField): $this

Создает условие равенства или присвоение с оберткой идентификатора.

Parameters

string $leftField

Имя поля левого условия соединения.

string $rightField

Имя поля правого условия соединения.

Returns

$this

exists() public

exists(Cake\Database\ExpressionInterface $expression): $this

Добавляет новое условие к объекту выражения в виде "EXISTS (...)".

Параметры

Cake\Database\ExpressionInterface $expression

внутренний запрос

Возвращает

$this

getConjunction() public

getConjunction(): string

Получает текущую конъюнкцию, настроенную для условий на данном уровне дерева выражения.

Возвращает

string

getDefaultTypes() public

getDefaultTypes(): array<int|string, string>

Получает типы по умолчанию из текущей карты типов.

Возвращает

array<int|string, string>

getTypeMap() public

getTypeMap(): Cake\Database\TypeMap

Возвращает существующую карту типов.

Возвращает

Cake\Database\TypeMap

gt() public

gt(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, настроенное с помощью карты типов.

Возвращает

$this

gte() public

gte(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, настроенное с помощью карты типов.

Возвращает

$this

hasNestedExpression() public

hasNestedExpression(): bool

Возвращает true, если это выражение содержит вложенные объекты ExpressionInterface.

Возвращает

bool

in() 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

значение, привязываемое к $field для сравнения

string|null $type optional

имя типа для $value, настроенное с помощью карты типов.

Возвращает

$this

isCallable() public

isCallable(Cake\Database\ExpressionInterface|callable|array|string $callable): bool

Проверяет, является ли переданное значение вызываемым объектом.

Мы не принимаем колбэки типа ['класс', 'метод'], так как они часто содержат пользовательский ввод, а массивы строк легко подменить.

Параметры

Cake\Database\ExpressionInterface|callable|array|string $callable

Вызываемый объект для проверки.

Возвращает

bool

isNotNull() public

isNotNull(Cake\Database\ExpressionInterface|string $field): $this

Добавляет новое условие к объекту выражения в форме "поле НЕ NULL".

Параметры

Cake\Database\ExpressionInterface|string $field

базовое поле, проверяемое на не-null

Возвращает

$this

isNull() public

isNull(Cake\Database\ExpressionInterface|string $field): $this

Добавляет новое условие к объекту выражения в форме "поле IS NULL".

Параметры

Cake\Database\ExpressionInterface|string $field

базовое поле, проверяемое на null

Возвращает

$this

iterateParts() public

iterateParts(callable $callback): $this

Выполняет функцию для каждого элемента, формирующего это выражение.

Функция должна возвращать значение, которым будет заменена текущая часть. Если функция возвращает null, то часть полностью удаляется из выражения.

Функция обратного вызова получает каждое условие в качестве первого параметра и ключ в качестве второго. Второй параметр можно передавать по ссылке, это позволит изменить ключ, под которым хранится измененная часть.

Параметры

callable $callback

Вызываемый объект, применяемый к каждой части.

Возвращает

$this

like() public

like(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null): $this

Добавляет новое условие к объекту выражения в форме "поле LIKE значение".

Параметры

Cake\Database\ExpressionInterface|string $field

Базовое поле, сравниваемое со значением

mixed $value

Значение, которое привязывается к $field для сравнения

string|null $type optional

имя типа для $value, настроенное с помощью карты типов.

Возвращает

$this

lt() public

lt(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, настроенное с помощью карты типов.

Возвращает

$this

lte() public

lte(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, настроенное с помощью карты типов.

Возвращает

$this

not() public

not(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): $this

Добавляет новое множество условий на текущий уровень дерева и инвертирует итоговый результат, добавив NOT. Будет выглядеть как "NOT ( (условие1) И (условия2) )". Конъюнкция зависит от текущей, настроенной для этого объекта.

Параметры

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

условия, которые нужно добавить и инвертировать

array<string, string> $types optional

Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращает

$this

notEq() public

notEq(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, настроенное с помощью карты типов. Если оно заканчивается "[]" и значение является массивом, то будет создано несколько заглушек, по одной на каждое значение в массиве.

Возвращает

$this

notExists() public

notExists(Cake\Database\ExpressionInterface $expression): $this

Добавляет новое условие к объекту выражения в форме "НЕ СУЩЕСТВУЕТ (...)".

Параметры

Cake\Database\ExpressionInterface $expression

внутренний запрос

Возвращает

$this

notIn() 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 необязательный

имя типа для $value, как настроено в Type map.

Возвращает

$this

notInOrNull() public

notInOrNull(Cake\Database\ExpressionInterface|string $field, Cake\Database\ExpressionInterface|array|string $values, string|null $type = null): $this

Добавляет новое условие к объекту выражения в форме "(поле НЕ В (значение1, значение2) ИЛИ поле NULL".

Параметры

Cake\Database\ExpressionInterface|string $field

Поле базы данных, которое сравнивается со значением

Cake\Database\ExpressionInterface|array|string $values

значение, которое привязывается к $field для сравнения

string|null $type необязательный

имя типа для $value, как настроено в Type map.

Возвращает

$this

notLike() 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 необязательный

имя типа для $value, как настроено в Type map.

Возвращает

$this

or() 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 необязательный

Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращает

Cake\Database\Expression\QueryExpression

or_() 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 необязательный

Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.

Возвращает

Cake\Database\Expression\QueryExpression

setConjunction() public

setConjunction(string $conjunction): $this

Изменяет союцию для условий на данном уровне дерева выражений.

Параметры

string $conjunction

Значение, используемое для объединения условий

Возвращает

$this

setDefaultTypes() public

setDefaultTypes(array<int|string, string> $types): $this

Перезаписывает сопоставления типов по умолчанию для полей в реализующем объекте.

Этот метод полезен, если вам необходимо установить сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.

Чтобы добавить значение по умолчанию без перезаписи существующих, используйте getTypeMap()->addDefaults()

Параметры

array<int|string, string> $types

Массив типов, которые нужно установить.

Возвращает

$this

См. также

\Cake\Database\TypeMap::setDefaults()

setTypeMap() public

setTypeMap(Cake\Database\TypeMap|array $typeMap): $this

Создаёт новую TypeMap, если $typeMap является массивом, в противном случае меняет её на переданную.

Параметры

Cake\Database\TypeMap|array $typeMap

Создаёт TypeMap, если массив, иначе задаёт переданную TypeMap

Возвращает

$this

sql() public

sql(Cake\Database\ValueBinder $binder): string

Преобразует узел в фрагмент строки SQL.

Параметры

Cake\Database\ValueBinder $binder

Возвращает

string

traverse() 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.4/class-Cake.Database.Expression.OrderByExpression.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API