Класс AggregateExpression
Это представляет собой выражение агрегатной функции SQL в операторе SQL. Вызовы могут быть построены путем передачи имени функции и списка параметров. По соображениям безопасности все передаваемые параметры по умолчанию приводятся в кавычки, если явно не указано иное.
Константы
-
stringFOLLOWING'FOLLOWING'
-
stringGROUPS'GROUPS'
-
stringPRECEDING'PRECEDING'
-
stringRANGE'RANGE'
-
stringROWS'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
Краткое описание методов
-
__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)».
-
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 Список имен типов
Возвращает
arrayadd() public
add(array $conditions, array<string, string> $types = [], bool $prepend = false): $this
Добавляет один или несколько аргументов для вызова функции.
Параметры
-
array$conditions список аргументов, передаваемых функции. Если ассоциативный, ключ будет использоваться в качестве аргумента, когда значение равно 'буквальный'
-
array<string, string>$types необязательно Ассоциативный массив типов, которые будут связаны с переданными аргументами
-
bool$prepend необязательно Добавлять или нет в начало/конец списка аргументов
Возвращает
$thisСм. также
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
Возвращает
$thisand() 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\QueryExpressionand_() 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\QueryExpressionbetween() 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.
Возвращает
$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 (простой случай), где 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\CaseStatementExpressioncount() public
count(): int
Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.
Возвращает
inteq() 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, как настроено с помощью карты типов. Если оно завершается "[]" и значение является массивом, то будут созданы несколько плейсхолдеров, по одному на каждое значение в массиве.
Возвращает
$thisequalFields() public
equalFields(string $leftField, string $rightField): $this
Создаёт условие равенства или присваивания с обертыванием идентификатора.
Параметры
-
string$leftField Имя поля условия левого соединения.
-
string$rightField Имя поля условия правого соединения.
Возвращает
$thisexcludeCurrent() public
excludeCurrent(): $this
Добавляет исключение текущей строки.
Возвращает
$thisexcludeGroup() public
excludeGroup(): $this
Добавляет исключение группы.
Возвращает
$thisexcludeTies() public
excludeTies(): $this
Добавляет исключение связей.
Возвращает
$thisexists() public
exists(Cake\Database\ExpressionInterface $expression): $this
Добавляет новое условие к объекту выражения в форме "СУЩЕСТВУЕТ (...)".
Параметры
-
Cake\Database\ExpressionInterface$expression вложенный запрос
Возвращает
$thisfilter() 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См. также
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
Возвращает
$thisgetConjunction() public
getConjunction(): string
Получает текущее конъюнкцию для условий на данном уровне дерева выражений.
Возвращает
stringgetDefaultTypes() public
getDefaultTypes(): array<string, string>
Получает значения по умолчанию текущей карты типов.
Возвращает
array<string, string>getName() public
getName(): string
Получает имя SQL-функции, которая должна быть вызвана в этом выражении.
Возвращает
stringgetReturnType() public
getReturnType(): string
Получает тип значения, которое сгенерирует этот объект.
Возвращает
stringgetTypeMap() public
getTypeMap(): Cake\Database\TypeMap
Возвращает существующую карту типов.
Возвращает
Cake\Database\TypeMapgroups() public
groups(int|null $start, int|null $end = 0): $this
Добавляет простой фрейм групп в окно.
Подробности см. в range().
Параметры
-
int|null$start -
int|null$end опционально
Возвращает
$thisgt() 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, как настроено в карте типов.
Возвращает
$thisgte() 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, как настроено в карте типов.
Возвращает
$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 значение, которое должно быть привязано к $field для сравнения
-
string|null$type опционально имя типа для $value, как настроено в карте типов.
Возвращает
$thisisCallable() public
isCallable(Cake\Database\ExpressionInterface|callable|array|string $callable): bool
Проверка, является ли вызываемый объект приемлемым.
Мы не принимаем обратные вызовы в стиле ['class', 'method'], так как они часто содержат пользовательский ввод, а массивы строк легко подделывать.
Параметры
-
Cake\Database\ExpressionInterface|callable|array|string$callable Вызываемый объект для проверки.
Возвращает
boolisNotNull() public
isNotNull(Cake\Database\ExpressionInterface|string $field): $this
Добавляет новое условие к объекту выражения в форме "поле IS NOT NULL".
Параметры
-
Cake\Database\ExpressionInterface|string$field поле базы данных, которое должно быть проверено на непустоту
Возвращает
$thisisNull() public
isNull(Cake\Database\ExpressionInterface|string $field): $this
Добавляет новое условие к объекту выражения в форме "поле IS NULL".
Parameters
-
Cake\Database\ExpressionInterface|string$field поле базы данных, которое необходимо проверить на null
Returns
$thisiterateParts() public
iterateParts(callable $callback): $this
Выполняет вызываемую функцию для каждой из частей, которые образуют это выражение.
Вызываемая функция должна возвращать значение, которым будет заменена текущая посещаемая часть. Если вызываемая функция возвращает null, то часть будет полностью удалена из этого выражения.
Функция обратного вызова получит каждое из условий в качестве первого параметра и ключ в качестве второго параметра. Можно объявить второй параметр как передаваемый по ссылке, это позволит изменить ключ, под которым хранится модифицированная часть.
Parameters
-
callable$callback Вызываемая функция, применяемая к каждой части.
Returns
$thislike() 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
$thislt() 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
$thislte() 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
$thisnot() 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
$thisnotEq() 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
$thisnotExists() public
notExists(Cake\Database\ExpressionInterface $expression): $this
Добавляет новое условие к объекту выражения в форме "NOT EXISTS (...)".
Parameters
-
Cake\Database\ExpressionInterface$expression внутренний запрос
Returns
$thisnotIn() 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
$thisnotInOrNull() 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
$thisnotLike() 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
$thisor() 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\QueryExpressionor_() 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\QueryExpressionorder() public
order(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $fields): $this
Добавляет одну или несколько условных фраз сортировки к окну.
Parameters
-
Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string$fields
Returns
$thisover() public
over(string|null $name = null): $this
Добавляет пустое OVER() выражение окна или именованное выражение окна.
Parameters
-
string|null$name optional Имя окна
Returns
$thispartition() public
partition(Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string $partitions): $this
Добавляет одну или несколько выражений разбиения в окно.
Параметры
-
Cake\Database\ExpressionInterfaceClosure|arrayCake\Database\ExpressionInterface|string>|string$partitions
Возвращаемое значение
$thisrange() 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 необязательно
Возвращаемое значение
$thisrows() public
rows(int|null $start, int|null $end = 0): $this
Добавляет простую рамку строк в окно.
См. range() для получения подробностей.
Параметры
-
int|null$start -
int|null$end необязательно
Возвращаемое значение
$thissetConjunction() public
setConjunction(string $conjunction): $this
Изменяет союзы для условий на данном уровне дерева выражений.
Параметры
-
string$conjunction Значение, используемое для соединения условий
Возвращаемое значение
$thissetDefaultTypes() public
setDefaultTypes(array<string, string> $types): $this
Перезаписывает сопоставления типов по умолчанию для полей в объекте-реализаторе.
Этот метод полезен, если вам нужно установить сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.
Чтобы добавить значение по умолчанию без перезаписи существующих, используйте getTypeMap()->addDefaults()
Параметры
-
array<string, string>$types Массив типов для установки.
Возвращаемое значение
$thisСм. также
setName() public
setName(string $name): $this
Устанавливает имя SQL-функции, которую нужно вызвать в этом выражении.
Параметры
-
string$name Имя функции
Возвращаемое значение
$thissetReturnType() public
setReturnType(string $type): $this
Устанавливает тип значения, которое будет генерировать этот объект.
Параметры
-
string$type Имя типа, который должен быть возвращён
Возвращаемое значение
$thissetTypeMap() 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
Список строк или других объектов выражений, представляющих «ветви» дерева выражений. Например, один ключ массива может выглядеть как "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