Class FunctionExpression
Этот класс представляет строку вызова функции в операторе SQL. Вызовы могут быть построены путем передачи имени функции и списка параметров. По соображениям безопасности все передаваемые параметры по умолчанию заключены в кавычки, если явно не указано иное.
Краткое описание свойств
- $_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, содержащий все переданные условия и устанавливает конъюнкцию на «ИЛИ»
-
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<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 список аргументов, которые будут переданы функции. Если ассоциативный массив, ключ будет использоваться как аргумент, когда значение равно 'literal'
-
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 используется как значение
ELSE.-
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 Имя поля условия правого соединения.
Возвращает
$thisexists() public
exists(Cake\Database\ExpressionInterface $expression): $this
Добавляет новое условие к объекту выражения в форме «СУЩЕСТВУЕТ (...)».
Параметры
-
Cake\Database\ExpressionInterface$expression внутренний запрос
Возвращает
$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\TypeMapgt() 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
Добавляет новое условие к объекту выражения в форме «поле В (значение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
Добавляет новое условие к объекту выражения в форме «поле НЕ NULL».
Параметры
-
Cake\Database\ExpressionInterface|string$field поле базы данных, которое проверяется на непустое значение
Возвращает
$thisisNull() public
isNull(Cake\Database\ExpressionInterface|string $field): $this
Добавляет новое условие к объекту выражения в форме «поле IS NULL».
Параметры
-
Cake\Database\ExpressionInterface|string$field поле базы данных, которое проверяется на пустое значение
Возвращает
$thisiterateParts() public
iterateParts(callable $callback): $this
Выполняет вызываемую функцию для каждой части, составляющей это выражение.
Вызываемая функция должна возвращать значение, с помощью которого будет заменена текущая посещаемая часть. Если вызываемая функция возвращает null, то часть будет полностью удалена из этого выражения.
Обратный вызов будет получать каждое условие как первый параметр, а ключ — как второй. Возможно объявить второй параметр как передаваемый по ссылке, это позволит изменить ключ, под которым хранится изменённая часть.
Параметры
-
callable$callback Вызываемый объект, применяемый к каждой части.
Возвращает
$thislike() 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, настроенное с помощью карты типов.
Возвращает
$thislt() 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, настроенное с помощью карты типов.
Возвращает
$thislte() 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, как настроено с помощью карты типов.
Возвращает
$thisnot() 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 необязательно Ассоциативный массив полей, указывающий на тип значений, которые передаются. Используется для правильной привязки значений к операторам.
Возвращает
$thisnotEq() 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, как настроено с помощью карты типов. Если оно оканчивается на «[]», и значение является массивом, то будут созданы несколько заменителей, по одному для каждого значения в массиве.
Возвращает
$thisnotExists() public
notExists(Cake\Database\ExpressionInterface $expression): $this
Добавляет новое условие к объекту выражения в форме «НЕ СУЩЕСТВУЕТ (...)».
Параметры
-
Cake\Database\ExpressionInterface$expression внутренний запрос
Возвращает
$thisnotIn() 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, как настроено с помощью карты типов.
Возвращает
$thisnotInOrNull() 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, как настроено с помощью карты типов.
Возвращает
$thisnotLike() 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, как настроено с помощью карты типов.
Возвращает
$thisor() 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\QueryExpressionor_() 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\QueryExpressionsetConjunction() 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 защищенное
Список строк или других объектов выражения, представляющих «ветви» дерева выражения. Например, один ключ массива может выглядеть как «сумма > :значение»
Тип
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.3/class-Cake.Database.Expression.FunctionExpression.html