Spec-Zone.ru › CakePHP 4.2

Class FunctionExpression

This class represents a function call string in a SQL statement. Calls can be constructed by passing the name of the function and a list of params. For security reasons, all params passed are quoted by default unless explicitly told otherwise.

Namespace: Cake\Database\Expression

Сводка свойств

  • $_conditions protected
    array

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

  • $_conjunction protected
    string

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

  • $_name protected
    string

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

  • $_returnType protected
    string

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

  • $_typeMap protected
    Cake\Database\TypeMap|null

Сводка методов

  • __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

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

  • count() public

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

  • eq() public

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

  • equalFields() public

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

  • exists() public

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

  • getConjunction() public

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

  • getDefaultTypes() public

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

  • getName() public

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

  • getReturnType() public

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

  • getTypeMap() public

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

  • gt() public

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

  • gte() public

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

  • hasNestedExpression() public

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

  • in() public

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

  • isCallable() public deprecated

    Проверка того, является ли вызываемый элемент приемлемым.

  • isNotNull() public

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

  • isNull() public

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

  • iterateParts() public

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

  • like() public

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

  • lt() public

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

  • lte() public

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

  • not() public

    Добавляет новый набор условий на этот уровень дерева и инвертирует окончательный результат, добавив NOT. Это будет выглядеть как «НЕ ( (условие1) И (условия2) )». Конъюнкция зависит от текущей конъюнкции для этого объекта.

  • notEq() public

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

  • notExists() public

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

  • notIn() public

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

  • notLike() public

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

  • or() public

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

  • or_() public deprecated

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

  • 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 необязательно

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

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

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

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

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

_addConditions() protected

_addConditions(array $conditions, array $types): void

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

Параметры

array $conditions

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

array $types

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

Возвращает

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

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

Возвращает

array

add() public

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

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

Параметры

array $conditions

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

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

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

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

Должен ли добавляться перед или после списка аргументов

Возвращает

$this

См. также

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

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 используется как значение ELSE.

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

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

Возвращает

$this

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

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

between() 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.

Возвращает

$this

count() public

count(): int

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

Возвращает

int

eq() 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. Если оно имеет суффикс «[]» и значение является массивом, то будет создано несколько заглушек, по одной для каждого значения в массиве.

Возвращает

$this

equalFields() public

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

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

Параметры

string $leftField

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

string $rightField

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

Возвращает

$this

exists() public

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

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

Параметры

Cake\Database\ExpressionInterface $expression

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

Возвращает

$this

getConjunction() public

getConjunction(): string

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

Возвращает

string

getDefaultTypes() public

getDefaultTypes(): array

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

Возвращает

array

getName() public

getName(): string

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

Возвращает

string

getReturnType() public

getReturnType(): string

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

Возвращает

string

getTypeMap() public

getTypeMap(): Cake\Database\TypeMap

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

Возвращает

Cake\Database\TypeMap

gt() public

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

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

Параметры

stringCake\Database\ExpressionInterface $field

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

mixed $value

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

string|null $type optional

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

Возвращает

$this

gte() public

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

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

Параметры

stringCake\Database\ExpressionInterface $field

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

mixed $value

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

string|null $type optional

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

Возвращает

$this

hasNestedExpression() public

hasNestedExpression(): bool

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

Возвращает

bool

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

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

string|null $type optional

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

Возвращает

$this

isCallable() public

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

Проверяет, является ли вызов допустимым.

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

Параметры

callable|string|arrayCake\Database\ExpressionInterface $callable

Вызов для проверки.

Возвращает

bool

isNotNull() public

isNotNull(stringCake\Database\ExpressionInterface $field): $this

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

Параметры

stringCake\Database\ExpressionInterface $field

поле базы данных, проверяемое на не-NULL

Возвращает

$this

isNull() public

isNull(stringCake\Database\ExpressionInterface $field): $this

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

Параметры

stringCake\Database\ExpressionInterface $field

поле базы данных, проверяемое на NULL

Возвращает

$this

iterateParts() public

iterateParts(callable $callback): $this

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

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

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

Параметры

callable $callback

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

Возвращает

$this

like() public

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

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

Параметры

stringCake\Database\ExpressionInterface $field

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

mixed $value

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

string|null $type optional

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

Возвращает

$this

lt() public

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

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

Параметры

stringCake\Database\ExpressionInterface $field

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

mixed $value

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

string|null $type optional

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

Возвращает

$this

lte() public

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

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

Параметры

stringCake\Database\ExpressionInterface $field

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

mixed $value

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

string|null $type optional

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

Возвращает

$this

not() public

not(string|arrayClosureCake\Database\ExpressionInterface $conditions, array $types = []): $this

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

Параметры

string|arrayClosureCake\Database\ExpressionInterface $conditions

для добавления и инвертирования

array $types optional

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

Возвращает

$this

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

$this

notExists() public

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

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

Parameters

Cake\Database\ExpressionInterface $expression

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

Returns

$this

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

$this

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

$this

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

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

setConjunction() public

setConjunction(string $conjunction): $this

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

Parameters

string $conjunction

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

Returns

$this

setDefaultTypes() public

setDefaultTypes(array $types): $this

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

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

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

Parameters

array $types

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

Returns

$this

See Also

\Cake\Database\TypeMap::setDefaults()

setName() public

setName(string $name): $this

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

Parameters

string $name

Имя функции

Returns

$this

setReturnType() public

setReturnType(string $type): $this

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

Parameters

string $type

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

Returns

$this

setTypeMap() public

setTypeMap(arrayCake\Database\TypeMap $typeMap): $this

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

Parameters

arrayCake\Database\TypeMap $typeMap

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

Returns

$this

sql() public

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

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

Parameters

Cake\Database\ValueBinder $binder

Returns

string

traverse() public

traverse(Closure $callback): $this

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

Parameters

Closure $callback

Returns

$this

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

$_conditions protected

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

Type

array

$_conjunction protected

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

Type

string

$_name protected

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

Type

string

$_returnType protected

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

Type

string

$_typeMap protected

Type

Cake\Database\TypeMap|null

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.2/class-Cake.Database.Expression.FunctionExpression.html

Spec-Zone.ru

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