Spec-Zone.ru › CakePHP 4.4

Class FunctionExpression

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

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

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

  • $_conditions protected
    array

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

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

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

  • and() public

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

  • and_() public deprecated

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

  • between() public

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

  • case() public

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

  • count() public

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

  • eq() public

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

  • equalFields() public

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

  • exists() public

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

  • getConjunction() public

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

  • getDefaultTypes() public

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

  • getName() public

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

  • getReturnType() public

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

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

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

  • notLike() public

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

  • or() public

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

  • or_() public deprecated

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

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

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

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

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

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

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

_addConditions() protected

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

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

Параметры

array $conditions

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

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

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

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

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

exists() public

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

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

Параметры

Cake\Database\ExpressionInterface $expression

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

Возвращает

$this

getConjunction() public

getConjunction(): string

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

Возвращает

string

getDefaultTypes() public

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

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

Возвращает

array<int|string, string>

getName() public

getName(): string

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

Возвращает

string

getReturnType() public

getReturnType(): string

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

Возвращает

string

getTypeMap() public

getTypeMap(): Cake\Database\TypeMap

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

Возвращает

Cake\Database\TypeMap

gt() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

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

Имя типа для $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

Добавляет новое условие к объекту выражения в форме «поле В (значение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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

Возвращает

$this

isNull() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

Возвращает

$this

iterateParts() public

iterateParts(callable $callback): $this

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

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

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

Параметры

callable $callback

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

Возвращает

$this

like() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

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

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

Возвращает

$this

lt() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

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

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

Возвращает

$this

lte() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

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

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

Возвращает

$this

not() public

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

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

Параметры

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

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

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

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

Возвращает

$this

notEq() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

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

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

Возвращает

$this

notExists() public

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

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

Параметры

Cake\Database\ExpressionInterface $expression

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

Возвращает

$this

notIn() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

Cake\Database\ExpressionInterface|array|string $values

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

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

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

Возвращает

$this

notInOrNull() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

Cake\Database\ExpressionInterface|array|string $values

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

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

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

Возвращает

$this

notLike() public

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

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

Параметры

Cake\Database\ExpressionInterface|string $field

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

mixed $value

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

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

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

Возвращает

$this

or() public

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

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

Параметры

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

для объединения с ИЛИ

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

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

Возвращает

Cake\Database\Expression\QueryExpression

or_() public

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

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

Параметры

Cake\Database\ExpressionInterfaceClosure|array|string $conditions

для объединения с ИЛИ

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

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

Возвращает

Cake\Database\Expression\QueryExpression

setConjunction() public

setConjunction(string $conjunction): $this

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

Параметры

string $conjunction

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

Возвращает

$this

setDefaultTypes() public

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

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

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

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

Параметры

array<int|string, string> $types

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

Возвращает

$this

См. также

\Cake\Database\TypeMap::setDefaults()

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 защищенное

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

Тип

array

$_conjunction защищенное

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

Тип

string

$_name защищенное

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

Тип

string

$_returnType защищенное

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

Тип

string

$_typeMap защищенное

Тип

Cake\Database\TypeMap|null

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

Spec-Zone.ru

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