Spec-Zone.ru › CakePHP 4.3

Класс AggregateExpression

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

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

Константы

  • string
    FOLLOWING
    'FOLLOWING'
  • string
    GROUPS
    'GROUPS'
  • string
    PRECEDING
    'PRECEDING'
  • string
    RANGE
    'RANGE'
  • string
    ROWS
    'ROWS'

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

  • $_conditions protected
    array

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

  • $_conjunction protected
    string

    Строка, используемая для соединения каждого из внутренних выражений, которые этот объект хранит внутри, например, «И», «ИЛИ» и т. д.

  • $_name protected
    string

    Имя функции, которое будет построено при генерации строки SQL

  • $_returnType protected
    string

    Имя типа, которое вернет это выражение при выполнении

  • $_typeMap protected
    Cake\Database\TypeMap|null
  • $filter protected
    Cake\Database\Expression\QueryExpression
  • $window protected
    Cake\Database\Expression\WindowExpression
END_OF_DOCUMENT_MARKER

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

  • __clone() public

    Клонирует этот объект и его поддерево выражений.

  • __construct() public

    Конструктор. Принимает имя вызываемой функции и список параметров, передаваемых в функцию. Можно также передать список типов, используемых для каждого связанного параметра.

  • _addConditions() protected

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

  • _calculateType() protected

    Возвращает имя типа для переданного поля, если оно было сохранено в typeMap.

  • _castToExpression() protected

    Условно преобразует переданное значение в объект ExpressionInterface, если тип класса реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.

  • _parseCondition() protected

    Разбирает строковые условия, пытаясь извлечь оператор, если он есть, и в конечном итоге возвращает либо соответствующий объект QueryExpression, либо просто строковое представление условия. Эта функция отвечает за создание плейсхолдеров и замену значений на них, сохраняя значение в другом месте для последующей привязки.

  • _requiresToExpressionCasting() protected

    Возвращает массив с типами, для которых значения должны быть преобразованы в выражения, из списка имен типов, переданных в качестве параметра.

  • add() public

    Добавляет один или несколько аргументов для вызова функции.

  • addCase() public deprecated

    Добавляет новое выражение case в объект выражения.

  • and() public

    Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию в «И».

  • and_() public deprecated

    Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию в «И».

  • between() public

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

  • case() public

    Возвращает новый объект выражения case.

  • count() public

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

  • eq() public

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

  • equalFields() public

    Строит условие равенства или присваивание с идентификатором обёртывания.

  • excludeCurrent() public

    Добавляет исключение текущей строки.

  • excludeGroup() public

    Добавляет исключение группы.

  • excludeTies() public

    Добавляет исключение ничьих.

  • exists() public

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

  • filter() public

    Добавляет условия к фильтру. Условия имеют тот же формат, что и Query::where().

  • frame() public

    Добавляет фрейм к окну.

  • getConjunction() public

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

  • getDefaultTypes() public

    Получает значения по умолчанию текущей type map.

  • getName() public

    Получает имя SQL-функции, которая должна быть вызвана в этом выражении.

  • getReturnType() public

    Получает тип значения, которое сгенерирует этот объект.

  • getTypeMap() public

    Возвращает существующую type map.

  • groups() 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

    Добавляет новое условие в объект выражения в форме «поле НЕ IN (значение1, значение2)».

END_OF_DOCUMENT_MARKER
  • notInOrNull() public

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

  • notLike() public

    Добавляет новое условие к объекту выражения в виде "поле НЕ ПОДОБНО значение".

  • or() public

    Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает сопряжение в «ИЛИ»

  • or_() public deprecated

    Возвращает новый объект QueryExpression, содержащий все переданные условия, и устанавливает сопряжение в «ИЛИ»

  • order() public

    Добавляет одну или несколько операндов упорядочивания в окно.

  • over() public

    Добавляет пустое OVER() выражение окна или именованное выражение окна.

  • partition() public

    Добавляет одно или несколько выражений раздела в окно.

  • range() public

    Добавляет простую рамку диапазона в окно.

  • rows() public

    Добавляет простую рамку строк в окно.

  • setConjunction() public

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

  • setDefaultTypes() public

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

  • setName() public

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

  • setReturnType() public

    Устанавливает тип значения, которое сгенерирует этот объект.

  • setTypeMap() public

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

  • sql() public

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

  • traverse() public

    Итерируется по каждой части выражения рекурсивно для каждого уровня дерева выражений и выполняет вызов $callback, передавая в качестве первого параметра экземпляр выражения, по которому в данный момент выполняется итерация.

Подробное описание методов

__clone() public

__clone(): void

Клонировать этот объект и его поддерево выражений.

Возвращает

void

__construct() public

__construct(string $name, array $params = [], array<string, string>|array<string|null> $types = [], string $returnType = 'string')

Конструктор. Принимает имя вызываемой функции и список параметров, передаваемых в функцию. Дополнительно можно передать список типов для каждого связанного параметра.

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

Примеры:

$f = new FunctionExpression('CONCAT', ['CakePHP', ' rules']);

Предыдущая строка сгенерирует CONCAT('CakePHP', ' rules')

$f = new FunctionExpression('CONCAT', ['name' => 'literal', ' rules']);

Что даст CONCAT(name, ' rules')

Параметры

string $name

имя функции, подлежащей построению

array $params необязательно

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

array<string, string>|array<string|null> $types необязательно

Ассоциативный массив типов, которые будут связаны с переданными аргументами

string $returnType необязательно

Тип возвращаемого значения этого выражения

_addConditions() protected

_addConditions(array $conditions, array<string, string> $types): void

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

Параметры

array $conditions

список условий, которые нужно сохранить в этом объекте

array<string, string> $types

список типов, связанных с полями, на которые ссылаются $conditions

Возвращает

void

_calculateType() protected

_calculateType(Cake\Database\ExpressionInterface|string $field): string|null

Возвращает имя типа для переданного поля, если оно было сохранено в typeMap.

Параметры

Cake\Database\ExpressionInterface|string $field

Имя поля, для которого нужно получить тип.

Возвращает

string|null

_castToExpression() protected

_castToExpression(mixed $value, string|null $type = null): mixed

Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.

Параметры

mixed $value

Значение для преобразования в ExpressionInterface

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

Имя типа

Возвращает

mixed

_parseCondition() protected

_parseCondition(string $field, mixed $value): Cake\Database\ExpressionInterface

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

Параметры

string $field

Значение, из которого будут извлечены фактическое поле и оператор.

mixed $value

Значение, которое должно быть привязано к заполнению для поля

Возвращает

Cake\Database\ExpressionInterface

Исключения

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

_requiresToExpressionCasting() protected

_requiresToExpressionCasting(array $types): array

Возвращает массив типов, для которых значения должны быть преобразованы в выражения из списка имен типов, переданных в качестве параметра.

Параметры

array $types

Список имен типов

Возвращает

array

add() public

add(array $conditions, array<string, string> $types = [], bool $prepend = false): $this

Добавляет один или несколько аргументов для вызова функции.

Параметры

array $conditions

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

array<string, string> $types необязательно

Ассоциативный массив типов, которые будут связаны с переданными аргументами

bool $prepend необязательно

Добавлять или нет в начало/конец списка аргументов

Возвращает

$this

См. также

\Cake\Database\Expression\FunctionExpression::__construct() для более подробной информации.

addCase() public

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

Добавляет новое выражение case в объект выражения

Параметры

Cake\Database\ExpressionInterface|array $conditions

Условие для проверки. Должен быть экземпляром ExpressionInterface или массивом экземпляров ExpressionInterface.

Cake\Database\ExpressionInterface|array $values необязательно

Ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если значений $values больше, чем условий $conditions, последнее $value используется как значение по умолчанию.

array<string> $types необязательно

Ассоциативный массив типов, которые будут связаны со значениями, переданными в $values

Возвращает

$this

and() public

and(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

and_() public

and_(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

between() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $from

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

mixed $to

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

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

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

Возвращает

$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 (простой случай), где when_value сравниваются с case_value.

Когда значение не установлено, генерируемый синтаксис — CASE WHEN when_conditions ... END (ищущий случай), где условия содержат сравнения.

Обратите внимание, что null — это допустимое значение case, и поэтому его следует передавать только в том случае, если вы действительно хотите создать вариант выражения простого случая!

Параметры

Cake\Database\ExpressionInterface|object|scalar|null $value необязательно

Значение case.

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

Тип значения case. Если тип не указан, будет предпринята попытка определить его по значению.

Возвращает

Cake\Database\Expression\CaseStatementExpression

count() public

count(): int

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

Возвращает

int

eq() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

string|null $type опционально

Имя типа для $value, как настроено с помощью карты типов. Если оно завершается "[]" и значение является массивом, то будут созданы несколько плейсхолдеров, по одному на каждое значение в массиве.

Возвращает

$this

equalFields() public

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

Создаёт условие равенства или присваивания с обертыванием идентификатора.

Параметры

string $leftField

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

string $rightField

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

Возвращает

$this

excludeCurrent() public

excludeCurrent(): $this

Добавляет исключение текущей строки.

Возвращает

$this

excludeGroup() public

excludeGroup(): $this

Добавляет исключение группы.

Возвращает

$this

excludeTies() public

excludeTies(): $this

Добавляет исключение связей.

Возвращает

$this

exists() public

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

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

Параметры

Cake\Database\ExpressionInterface $expression

вложенный запрос

Возвращает

$this

filter() public

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

Добавляет условия в предложение FILTER. Условия имеют тот же формат, что и Query::where().

Параметры

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

Условия для фильтрации.

array<string, string> $types опционально

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

Возвращает

$this

См. также

\Cake\Database\Query::where()

frame() public

frame(string $type, Cake\Database\ExpressionInterface|string|int|null $startOffset, string $startDirection, Cake\Database\ExpressionInterface|string|int|null $endOffset, string $endDirection): $this

Добавляет фрейм в окно.

Используйте вспомогательные функции range(), rows() или groups(), если вам нужны простые фреймы типа 'BETWEEN offset PRECEDING and offset FOLLOWING'.

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

С обеими $startOffset и $endOffset:

  • 0 - 'ТЕКУЩАЯ СТРОКА'
  • null - 'БЕСКОНЕЧНО'

Параметры

string $type
Cake\Database\ExpressionInterface|string|int|null $startOffset
string $startDirection
Cake\Database\ExpressionInterface|string|int|null $endOffset
string $endDirection

Возвращает

$this

getConjunction() public

getConjunction(): string

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

Возвращает

string

getDefaultTypes() public

getDefaultTypes(): array<string, string>

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

Возвращает

array<string, string>

getName() public

getName(): string

Получает имя SQL-функции, которая должна быть вызвана в этом выражении.

Возвращает

string

getReturnType() public

getReturnType(): string

Получает тип значения, которое сгенерирует этот объект.

Возвращает

string

getTypeMap() public

getTypeMap(): Cake\Database\TypeMap

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

Возвращает

Cake\Database\TypeMap

groups() public

groups(int|null $start, int|null $end = 0): $this

Добавляет простой фрейм групп в окно.

Подробности см. в range().

Параметры

int|null $start
int|null $end опционально

Возвращает

$this

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 опционально

имя типа для $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 опционально

имя типа для $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 опционально

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

Возвращает

$this

isCallable() public

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

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

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

Параметры

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

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

Возвращает

bool

isNotNull() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

поле базы данных, которое должно быть проверено на непустоту

Возвращает

$this

isNull() public

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

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

Parameters

Cake\Database\ExpressionInterface|string $field

поле базы данных, которое необходимо проверить на null

Returns

$this

iterateParts() public

iterateParts(callable $callback): $this

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

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

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

Parameters

callable $callback

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

Returns

$this

like() public

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

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

Parameters

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

string|null $type optional

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

Returns

$this

lt() public

lt(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

lte() public

lte(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

not() public

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

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

Parameters

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

которые нужно добавить и инвертировать

array<string, string> $types optional

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

Returns

$this

notEq() public

notEq(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

notExists() public

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

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

Parameters

Cake\Database\ExpressionInterface $expression

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

Returns

$this

notIn() public

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

Добавляет новое условие к объекту выражения в форме "поле NOT IN (значение1, значение2)".

Parameters

Cake\Database\ExpressionInterface|string $field

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

Cake\Database\ExpressionInterface|array|string $values

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

string|null $type optional

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

Returns

$this

notInOrNull() public

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

Добавляет новое условие к объекту выражения в форме "(поле NOT IN (значение1, значение2) OR поле IS NULL".

Parameters

Cake\Database\ExpressionInterface|string $field

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

Cake\Database\ExpressionInterface|array|string $values

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

string|null $type optional

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

Returns

$this

notLike() public

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

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

Parameters

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

string|null $type optional

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

Returns

$this

or() public

or(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): Cake\Database\Expression\QueryExpression

Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию как "OR"

Parameters

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

которые нужно соединить с OR

array<string, string> $types optional

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

Returns

Cake\Database\Expression\QueryExpression

or_() public

or_(Cake\Database\ExpressionInterfaceClosure|array|string $conditions, array<string, string> $types = []): Cake\Database\Expression\QueryExpression

Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию как "OR"

Parameters

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

которые нужно соединить с OR

array<string, string> $types optional

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

Returns

Cake\Database\Expression\QueryExpression

order() public

order(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $fields): $this

Добавляет одну или несколько условных фраз сортировки к окну.

Parameters

Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $fields

Returns

$this

over() public

over(string|null $name = null): $this

Добавляет пустое OVER() выражение окна или именованное выражение окна.

Parameters

string|null $name optional

Имя окна

Returns

$this

partition() public

partition(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $partitions): $this

Добавляет одну или несколько выражений разбиения в окно.

Параметры

Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $partitions

Возвращаемое значение

$this

range() public

range(Cake\Database\ExpressionInterface|string|int|null $start, Cake\Database\ExpressionInterface|string|int|null $end = 0): $this

Добавляет простую рамку диапазона в окно.

$start:

  • 0 - 'ТЕКУЩАЯ СТРОКА'
  • null - 'НЕОГРАНИЧЕННО ДО ПРЕДЫДУЩИХ'
  • offset - 'offset ПРЕДЫДУЩИХ'

$end:

  • 0 - 'ТЕКУЩАЯ СТРОКА'
  • null - 'НЕОГРАНИЧЕННО СЛЕДУЮЩИХ'
  • offset - 'offset СЛЕДУЮЩИХ'

Если вам нужно использовать 'FOLLOWING' для начала рамки или 'PRECEDING' для конца рамки, используйте frame() вместо этого.

Параметры

Cake\Database\ExpressionInterface|string|int|null $start
Cake\Database\ExpressionInterface|string|int|null $end необязательно

Возвращаемое значение

$this

rows() public

rows(int|null $start, int|null $end = 0): $this

Добавляет простую рамку строк в окно.

См. range() для получения подробностей.

Параметры

int|null $start
int|null $end необязательно

Возвращаемое значение

$this

setConjunction() public

setConjunction(string $conjunction): $this

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

Параметры

string $conjunction

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

Возвращаемое значение

$this

setDefaultTypes() public

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

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

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

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

Параметры

array<string, string> $types

Массив типов для установки.

Возвращаемое значение

$this

См. также

\Cake\Database\TypeMap::setDefaults()

setName() public

setName(string $name): $this

Устанавливает имя SQL-функции, которую нужно вызвать в этом выражении.

Параметры

string $name

Имя функции

Возвращаемое значение

$this

setReturnType() public

setReturnType(string $type): $this

Устанавливает тип значения, которое будет генерировать этот объект.

Параметры

string $type

Имя типа, который должен быть возвращён

Возвращаемое значение

$this

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

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

Тип

array

$_conjunction protected

Строка, используемая для объединения каждого из внутренних выражений, хранящихся в этом объекте, например, «И», «ИЛИ» и т. д.

Тип

string

$_name protected

Имя функции, которое должно быть построено при генерации SQL-строки

Тип

string

$_returnType protected

Имя типа, который вернёт это выражение при выполнении

Тип

string

$_typeMap protected

Тип

Cake\Database\TypeMap|null

$filter protected

Тип

Cake\Database\Expression\QueryExpression

$window protected

Тип

Cake\Database\Expression\WindowExpression

© 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.AggregateExpression.html

Spec-Zone.ru

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