Класс CaseExpression
Этот класс представляет оператор SQL Case.
Устаревший: 4.3.0 Используйте QueryExpression::case() или CaseStatementExpression вместо этого
Краткое описание свойств
- $_conditions protected
arrayСписок строк или других объектов выражений, представляющих условия оператора case. Например, один ключ массива может выглядеть как "sum > :value".
- $_elseValue protected
Cake\Database\ExpressionInterface|array|string|nullЗначение
ELSEдля оператора case. Если null, тоELSEне будет включено. - $_values protected
arrayЗначения, связанные с условиями в массиве $_conditions. Каждое значение представляет значение 'true' для условия с соответствующим ключом.
Краткое описание методов
-
__construct() public
Создает выражение case
-
_addExpressions() protected
Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если нет соответствующего истинного значения, то оно устанавливается по умолчанию в '1'.
-
_castToExpression() protected
Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.
-
_compile() protected
Компилирует соответствующие части в sql
-
_requiresToExpressionCasting() protected
Возвращает массив с типами, которые требуют приведения значений к выражениям, из списка имен типов, переданных в качестве параметра.
-
add() public
Добавляет одно или несколько условий и их соответствующие истинные значения к объекту case. Условия должны быть одномерным массивом или QueryExpression. trueValues должны иметь аналогичную структуру, но могут содержать строковое значение.
-
elseValue() public
Устанавливает значение по умолчанию
-
sql() public
Преобразует узел в фрагмент строки SQL.
-
traverse() public
Рекурсивно перебирает каждую часть выражения для каждого уровня дерева выражений и выполняет вызываемый объект $callback, передавая в качестве первого параметра экземпляр выражения, который в данный момент перебирается.
Подробное описание методов
__construct() public
__construct(Cake\Database\ExpressionInterface|array $conditions = [], Cake\Database\ExpressionInterface|array $values = [], array<string> $types = [])
Создает выражение case
Parameters
-
Cake\Database\ExpressionInterface|array$conditions optional Условия для проверки. Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
-
Cake\Database\ExpressionInterface|array$values optional Ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если $values больше, чем $conditions, последнее $value используется как
ELSEзначение.-
array<string>$types optional Ассоциативный массив типов, которые будут связаны со значениями, переданными в $values
_addExpressions() protected
_addExpressions(array $conditions, array<mixed> $values, array<string> $types): void
Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если нет соответствующего истинного значения, то оно устанавливается по умолчанию в '1'.
Parameters
-
array$conditions Массив экземпляров ExpressionInterface.
-
array<mixed>$values Ассоциативный массив значений каждого условия
-
array<string>$types Ассоциативный массив типов, которые будут связаны со значениями
Returns
void_castToExpression() protected
_castToExpression(mixed $value, string|null $type = null): mixed
Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.
Parameters
-
mixed$value Значение для преобразования в ExpressionInterface
-
string|null$type optional Имя типа
Returns
mixed_compile() protected
_compile(Cake\Database\ExpressionInterface|array|string $part, Cake\Database\ValueBinder $binder): string
Компилирует соответствующие части в sql
Parameters
-
Cake\Database\ExpressionInterface|array|string$part Часть для компиляции
-
Cake\Database\ValueBinder$binder Генератор Sql
Returns
string_requiresToExpressionCasting() protected
_requiresToExpressionCasting(array $types): array
Возвращает массив с типами, которые требуют приведения значений к выражениям, из списка имен типов, переданных в качестве параметра.
Parameters
-
array$types Список имен типов
Returns
arrayadd() public
add(Cake\Database\ExpressionInterface|array $conditions = [], Cake\Database\ExpressionInterface|array $values = [], array<string> $types = []): $this
Добавляет одно или несколько условий и их соответствующие истинные значения к объекту case. Условия должны быть одномерным массивом или QueryExpression. trueValues должны иметь аналогичную структуру, но могут содержать строковое значение.
Parameters
-
Cake\Database\ExpressionInterface|array$conditions optional Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
-
Cake\Database\ExpressionInterface|array$values optional Ассоциативный массив значений каждого условия
-
array<string>$types optional Ассоциативный массив типов, которые будут связаны со значениями
Returns
$thiselseValue() public
elseValue(Cake\Database\ExpressionInterface|array|string|null $value = null, string|null $type = null): void
Устанавливает значение по умолчанию
Parameters
-
Cake\Database\ExpressionInterface|array|string|null$value optional Значение для установки
-
string|null$type optional Тип значения
Returns
voidsql() public
sql(Cake\Database\ValueBinder $binder): string
Преобразует узел в фрагмент строки SQL.
Parameters
-
Cake\Database\ValueBinder$binder Объект генератора замещающих символов
Returns
stringtraverse() public
traverse(Closure $callback): $this
Рекурсивно перебирает каждую часть выражения для каждого уровня дерева выражений и выполняет вызываемый объект $callback, передавая в качестве первого параметра экземпляр выражения, который в данный момент перебирается.
Parameters
-
Closure$callback
Returns
$thisПодробное описание свойств
$_conditions protected
Список строк или других объектов выражений, которые представляют условия оператора case. Например, один ключ массива может выглядеть как "sum > :value"
Type
array$_elseValue protected
Значение ELSE для оператора case. Если null, то ELSE не будет включено.
Type
Cake\Database\ExpressionInterface|array|string|null$_values protected
Значения, которые связаны с условиями в массиве $_conditions. Каждое значение представляет истинное значение для условия с соответствующим ключом.
Type
array
© 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.CaseExpression.html