Класс 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
Добавляет новое выражение case в объект выражения.
-
and() public
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию в «И».
-
and_() public deprecated
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает конъюнкцию в «И».
-
between() public
Добавляет новое условие в объект выражения в форме «поле BETWEEN от И до».
-
count() public
Название функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.
-
eq() public
Добавляет новое условие в объект выражения в форме «поле = значение».
-
equalFields() public
Создаёт условие равенства или присваивания с идентификатором обертки.
-
excludeCurrent() public
Добавляет исключение текущей строки.
-
excludeGroup() public
Добавляет исключение группового кадра.
-
excludeTies() public
Добавляет исключение связей.
-
exists() public
Добавляет новое условие в объект выражения в форме «СУЩЕСТВУЕТ (...)».
-
filter() public
Добавляет условия к предложению FILTER. Условия имеют тот же формат, что и
Query::where(). -
frame() public
Добавляет кадр к окну.
-
getConjunction() public
Получает текущую конъюнкцию для условий на данном уровне дерева выражений.
-
getDefaultTypes() public
Получает типы по умолчанию текущей таблицы типов.
-
getName() public
Получает имя SQL-функции, которую нужно вызвать в этом выражении.
-
getReturnType() public
Получает тип значения, которое сгенерирует этот объект.
-
getTypeMap() public
Возвращает существующую таблицу типов.
-
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)».
-
notLike() public
Добавляет новое условие в объект выражения в форме «поле НЕ LIKE значение».
-
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 $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 необязательносписок аргументов, которые нужно передать функции. Если ассоциативный массив, то ключ будет использоваться как аргумент, когда значение равно 'literal'
array$types необязательноассоциативный массив типов, которые нужно связать с переданными аргументами
string$returnType необязательнотип возвращаемого значения этого выражения
_addConditions() protected
_addConditions(array $conditions, array $types): void
Вспомогательная функция, используемая для разбиения вложенного массива условий и построения древовидной структуры внутри этого объекта для представления всего SQL-выражения. Строковые условия хранятся непосредственно в условиях, а любые другие представления оборачиваются соответствующим экземпляром или этого класса.
Параметры
array$conditionsсписок условий, которые нужно сохранить в этом объекте
array$typesсписок типов, связанных с полями, на которые ссылаются условия
Возвращаемые значения
void_calculateType() protected
_calculateType(stringCake\Database\ExpressionInterface $field): string|null
Возвращает имя типа для переданного поля, если оно хранится в typeMap.
Параметры
stringCake\Database\ExpressionInterface$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): stringCake\Database\ExpressionInterface
Разбирает строковые условия, пытаясь извлечь оператор внутри них, если таковой имеется, и, наконец, возвращает либо соответствующий объект QueryExpression, либо обычное строковое представление условия. Эта функция отвечает за создание заглушек и замену значений на них, сохраняя значение в другом месте для дальнейшей привязки.
Параметры
string$fieldЗначение, из которого будут извлечены фактическое поле и оператор.
mixed$valueЗначение, которое нужно привязать к заглушке для поля
Возвращаемые значения
stringCake\Database\ExpressionInterfaceИсключения
InvalidArgumentExceptionЕсли оператор недействителен или отсутствует при использовании NULL.
_requiresToExpressionCasting() protected
_requiresToExpressionCasting(array $types): array
Возвращает массив типов, для которых значения должны быть преобразованы в выражения из переданного списка имён типов.
Параметры
array$typesСписок имён типов
Возвращаемые значения
arrayadd() public
add(array $conditions, array $types = [], bool $prepend = false): $this
Добавляет один или несколько аргументов для вызова функции.
Параметры
array$conditionsсписок аргументов, которые нужно передать функции. Если ассоциативный массив, то ключ будет использоваться как аргумент, когда значение равно 'literal'
array$types необязательноассоциативный массив типов, которые нужно связать с переданными аргументами
bool$prepend необязательноНужно ли добавить в начало или конец списка аргументов
Возвращаемые значения
$thisСм. также
addCase() public
addCase(arrayCake\Database\ExpressionInterface $conditions, arrayCake\Database\ExpressionInterface $values = [], array $types = []): $this
Добавляет новое выражение case в объект выражения.
Параметры
-
arrayCake\Database\ExpressionInterface$conditions Условия для проверки. Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
-
arrayCake\Database\ExpressionInterface$values необязательно ассоциативный массив значений, которые нужно связать с условиями, переданными в $conditions. Если значений $values больше, чем условий $conditions, последнее $value используется в качестве значения.
-
array$types необязательно ассоциативный массив типов, которые нужно связать со значениями, переданными в $values
Возвращаемые значения
$thisand() public
and(Closure|string|arrayCake\Database\ExpressionInterface $conditions, array $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает соединение в «И».
Параметры
-
Closure|string|arrayCake\Database\ExpressionInterface$conditions для объединения с помощью И
-
array$types необязательно ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильной привязки значений к инструкциям.
Возвращаемые значения
Cake\Database\Expression\QueryExpressionand_() public
and_(Closure|string|arrayCake\Database\ExpressionInterface $conditions, array $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и устанавливает соединение в «И».
Параметры
-
Closure|string|arrayCake\Database\ExpressionInterface$conditions для объединения с помощью И
-
array$types необязательно ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильной привязки значений к инструкциям.
Возвращаемые значения
Cake\Database\Expression\QueryExpressionbetween() public
between(stringCake\Database\ExpressionInterface $field, mixed $from, mixed $to, string|null $type = null): $this
Добавляет новое условие в объект выражения в виде «поле МЕЖДУ от И до».
Параметры
-
stringCake\Database\ExpressionInterface$field Имя поля, которое сравнивается со значениями в диапазоне.
-
mixed$from Начальное значение диапазона.
-
mixed$to Конечное значение в диапазоне сравнения.
-
string|null$type необязательно имя типа для $value, как настроено с помощью Type map.
Возвращаемые значения
$thiscount() public
count(): int
Имя функции само по себе является выражением для генерации, поэтому всегда добавляет 1 к количеству выражений, хранящихся в этом объекте.
Возвращаемые значения
inteq() public
eq(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие в объект выражения в виде «поле = значение».
Параметры
-
stringCake\Database\ExpressionInterface$field Базовое поле, которое сравнивается со значением.
-
mixed$value Значение, которое нужно привязать к $field для сравнения.
-
string|null$type необязательно имя типа для $value, как настроено с помощью Type map. Если оно имеет суффикс «[]» и значение — массив, то будут созданы несколько заглушек, по одной на каждое значение в массиве.
Возвращаемые значения
$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
Добавляет новое условие к объекту выражения в виде "EXISTS (...)".
Параметры
-
Cake\Database\ExpressionInterface$expression внутренний запрос
Возвращает
$thisfilter() public
filter(string|arrayCake\Database\ExpressionInterfaceClosure $conditions, array $types = []): $this
Добавляет условия в предложение FILTER. Условия имеют тот же формат, что и Query::where().
Параметры
-
string|arrayCake\Database\ExpressionInterfaceClosure$conditions Условия фильтрации.
-
array$types optional ассоциативный массив имён типов, используемых для привязки значений к запросу
Возвращает
$thisСм. также
frame() public
frame(string $type, int|stringCake\Database\ExpressionInterface|null $startOffset, string $startDirection, int|stringCake\Database\ExpressionInterface|null $endOffset, string $endDirection): $this
Добавляет фрейм к окну.
Используйте вспомогательные функции range(), rows() или groups(), если вам нужны простые фреймы 'BETWEEN offset PRECEDING и offset FOLLOWING'.
Вы можете указать любое направление как для начала, так и для конца фрейма.
Используя как $startOffset, так и $endOffset:
-
0- 'ТЕКУЩАЯ СТРОКА' -
null- 'НЕОГРАНИЧЕННЫЙ'
Параметры
-
string$type -
int|stringCake\Database\ExpressionInterface|null$startOffset -
string$startDirection -
int|stringCake\Database\ExpressionInterface|null$endOffset -
string$endDirection
Возвращает
$thisgetConjunction() public
getConjunction(): string
Возвращает текущую конъюнкцию, настроенную для условий на этом уровне дерева выражения.
Возвращает
stringgetDefaultTypes() public
getDefaultTypes(): array
Получает типы по умолчанию из текущей карты типов.
Возвращает
arraygetName() 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 optional
Возвращает
$thisgt() public
gt(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в виде "поле > значение".
Параметры
-
stringCake\Database\ExpressionInterface$field Базовое поле для сравнения со значением
-
mixed$value Значение для привязки к полю для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Возвращает
$thisgte() public
gte(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в виде "поле >= значение".
Параметры
-
stringCake\Database\ExpressionInterface$field Базовое поле для сравнения со значением
-
mixed$value Значение для привязки к полю для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Возвращает
$thishasNestedExpression() public
hasNestedExpression(): bool
Возвращает true, если это выражение содержит другие вложенные объекты ExpressionInterface.
Возвращает
boolin() public
in(stringCake\Database\ExpressionInterface $field, string|arrayCake\Database\ExpressionInterface $values, string|null $type = null): $this
Добавляет новое условие к объекту выражения в виде "поле IN (значение1, значение2)".
Параметры
-
stringCake\Database\ExpressionInterface$field Базовое поле для сравнения со значением
-
string|arrayCake\Database\ExpressionInterface$values значение для привязки к полю для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Возвращает
$thisisCallable() public
isCallable(callable|string|arrayCake\Database\ExpressionInterface $callable): bool
Проверяет, является ли вызов допустимым.
Мы не принимаем вызовы стиля ['class', 'method'], так как они часто содержат пользовательский ввод, и массивы строк легко подсунуть.
Параметры
-
callable|string|arrayCake\Database\ExpressionInterface$callable Вызов для проверки.
Возвращает
boolisNotNull() public
isNotNull(stringCake\Database\ExpressionInterface $field): $this
Добавляет новое условие к объекту выражения в виде "поле IS NOT NULL".
Параметры
-
stringCake\Database\ExpressionInterface$field поле базы данных, которое должно проверяться на не NULL
Возвращает
$thisisNull() public
isNull(stringCake\Database\ExpressionInterface $field): $this
Добавляет новое условие к объекту выражения в виде "поле IS NULL".
Параметры
-
stringCake\Database\ExpressionInterface$field поле базы данных, которое должно проверяться на NULL
Возвращает
$thisiterateParts() public
iterateParts(callable $callback): $this
Выполняет вызываемую функцию для каждой части, образующей это выражение.
Вызываемая функция должна возвращать значение, которым будет заменена текущая обрабатываемая часть. Если вызываемая функция возвращает null, то часть будет полностью удалена из этого выражения.
Функция обратного вызова получит каждое условие в качестве первого параметра и ключ в качестве второго параметра. Возможна передача второго параметра по ссылке, что позволит изменить ключ, под которым хранится изменённая часть.
Параметры
-
callable$callback Вызываемая функция, которая будет применяться к каждой части.
Возвращает
$thislike() public
like(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле LIKE значение".
Parameters
-
stringCake\Database\ExpressionInterface$field Поле базы данных, которое будет сравниваться со значением
-
mixed$value Значение, которое будет привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Returns
$thislt() public
lt(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле < значение".
Parameters
-
stringCake\Database\ExpressionInterface$field Поле базы данных, которое будет сравниваться со значением
-
mixed$value Значение, которое будет привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Returns
$thislte() public
lte(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле <= значение".
Parameters
-
stringCake\Database\ExpressionInterface$field Поле базы данных, которое будет сравниваться со значением
-
mixed$value Значение, которое будет привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Returns
$thisnot() public
not(string|arrayClosureCake\Database\ExpressionInterface $conditions, array $types = []): $this
Добавляет новый набор условий на этот уровень дерева и отрицает окончательный результат, добавляя NOT в начале. Это будет выглядеть как "NOT ( (условие1) AND (условие2) )". Союз зависит от того, какой в данный момент настроен для этого объекта.
Parameters
-
string|arrayClosureCake\Database\ExpressionInterface$conditions которые нужно добавить и отрицать
-
array$types optional ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильного связывания значений с операторами.
Returns
$thisnotEq() public
notEq(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле != значение".
Parameters
-
stringCake\Database\ExpressionInterface$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(stringCake\Database\ExpressionInterface $field, string|arrayCake\Database\ExpressionInterface $values, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле NOT IN (значение1, значение2)".
Parameters
-
stringCake\Database\ExpressionInterface$field Поле базы данных, которое будет сравниваться со значением
-
string|arrayCake\Database\ExpressionInterface$values значение, которое будет привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Returns
$thisnotLike() public
notLike(stringCake\Database\ExpressionInterface $field, mixed $value, string|null $type = null): $this
Добавляет новое условие к объекту выражения в форме "поле NOT LIKE значение".
Parameters
-
stringCake\Database\ExpressionInterface$field Поле базы данных, которое будет сравниваться со значением
-
mixed$value Значение, которое будет привязано к $field для сравнения
-
string|null$type optional имя типа для $value, как настроено с помощью карты типов.
Returns
$thisor() public
or(Closure|string|arrayCake\Database\ExpressionInterface $conditions, array $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и настраивающий союз на "OR"
Parameters
-
Closure|string|arrayCake\Database\ExpressionInterface$conditions которые нужно объединить с OR
-
array$types optional ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильного связывания значений с операторами.
Returns
Cake\Database\Expression\QueryExpressionor_() public
or_(Closure|string|arrayCake\Database\ExpressionInterface $conditions, array $types = []): Cake\Database\Expression\QueryExpression
Возвращает новый объект QueryExpression, содержащий все переданные условия и настраивающий союз на "OR"
Parameters
-
Closure|string|arrayCake\Database\ExpressionInterface$conditions которые нужно объединить с OR
-
array$types optional ассоциативный массив полей, указывающих на тип передаваемых значений. Используется для правильного связывания значений с операторами.
Returns
Cake\Database\Expression\QueryExpressionorder() public
order(Closure|Cake\Database\ExpressionInterface|string)[]Cake\Database\ExpressionInterface|string $fields): $this
Добавляет одно или несколько предложений order к окну.
Parameters
-
Closure|Cake\Database\ExpressionInterface|string)[]Cake\Database\ExpressionInterface|string$fields
Returns
$thisover() public
over(string|null $name = null): $this
Добавляет пустое OVER() выражение окна или именованное выражение окна.
Parameters
-
string|null$name optional Имя окна
Returns
$thispartition() public
partition(Closure|Cake\Database\ExpressionInterface|string)[]Cake\Database\ExpressionInterface|string $partitions): $this
Добавляет одно или несколько выражений partition к окну.
Parameters
-
Closure|Cake\Database\ExpressionInterface|string)[]Cake\Database\ExpressionInterface|string$partitions
Returns
$thisrange() public
range(int|stringCake\Database\ExpressionInterface|null $start, int|stringCake\Database\ExpressionInterface|null $end = 0): $this
Добавляет простой фрейм range к окну.
$start:
-
0- 'CURRENT ROW' -
null- 'UNBOUNDED PRECEDING' - offset - 'offset PRECEDING'
$end:
-
0- 'CURRENT ROW' -
null- 'UNBOUNDED FOLLOWING' - offset - 'offset FOLLOWING'
Если вам нужно использовать 'FOLLOWING' с началом фрейма или 'PRECEDING' с концом фрейма, используйте frame() вместо этого.
Parameters
-
int|stringCake\Database\ExpressionInterface|null$start -
int|stringCake\Database\ExpressionInterface|null$end optional
Returns
$thisrows() public
rows(int|null $start, int|null $end = 0): $this
Добавляет простой фрейм rows к окну.
См. range() для подробностей.
Parameters
-
int|null$start -
int|null$end optional
Returns
$thissetConjunction() public
setConjunction(string $conjunction): $this
Изменяет союз для условий на этом уровне дерева выражений.
Параметры
-
string$conjunction Значение, которое будет использоваться для объединения условий
Возвращает
$thissetDefaultTypes() public
setDefaultTypes(array $types): $this
Переопределить сопоставления типов по умолчанию для полей в объекте-исполнителе.
Этот метод полезен, если вам нужно задать сопоставления типов, которые используются в нескольких функциях/выражениях в запросе.
Чтобы добавить значение по умолчанию без перезаписи существующих, используйте getTypeMap()->addDefaults()
Параметры
-
array$types Массив типов для установки.
Возвращает
$thisСм. также
setName() public
setName(string $name): $this
Устанавливает имя SQL-функции, которая должна быть вызвана в этом выражении.
Параметры
-
string$name Имя функции
Возвращает
$thissetReturnType() public
setReturnType(string $type): $this
Устанавливает тип значения, которое сгенерирует этот объект.
Параметры
-
string$type Имя возвращаемого типа.
Возвращает
$thissetTypeMap() public
setTypeMap(arrayCake\Database\TypeMap $typeMap): $this
Создает новый TypeMap, если $typeMap является массивом, в противном случае обменивает его на заданный.
Параметры
-
arrayCake\Database\TypeMap$typeMap Создает TypeMap, если массив, в противном случае устанавливает заданный TypeMap
Возвращает
$thissql() public
sql(Cake\Database\ValueBinder $binder): string
Преобразует узел в фрагмент SQL-строки.
Параметры
-
Cake\Database\ValueBinder$binder
Возвращает
stringtraverse() public
traverse(Closure $callback): $this
Рекурсивно перебирает каждую часть выражения на каждом уровне дерева выражений и выполняет вызов $callback, передавая в качестве первого параметра экземпляр выражения, который в данный момент перебирается.
Параметры
-
Closure$callback
Возвращает
$thisПодробное описание свойств
$_conditions protected
Список строк или других объектов выражений, которые представляют "ветви" дерева выражения. Например, один ключ массива может выглядеть как "сумма > :значение"
Тип
array$_conjunction protected
Строка, используемая для объединения каждого из внутренних выражений, которые хранятся в этом объекте, например, "И", "ИЛИ" и т. д.
Тип
string$_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.2/class-Cake.Database.Expression.AggregateExpression.html