Класс CaseExpression
Этот класс представляет оператор SQL Case.
Краткое описание свойств
- $_conditions protected
arrayСписок строк или других объектов выражения, представляющих условия оператора case. Например, один ключ массива может выглядеть как "sum > :value".
- $_elseValue protected
stringCake\Database\ExpressionInterface|array|nullЗначение по умолчанию для оператора case. Если null, то значение по умолчанию не будет включено.
- $_values protected
arrayЗначения, связанные с условиями в массиве $_conditions. Каждое значение представляет собой значение "истина" для условия с соответствующим ключом.
Краткое описание методов
-
__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(arrayCake\Database\ExpressionInterface $conditions = [], arrayCake\Database\ExpressionInterface $values = [], array $types = [])
Конструирует выражение case
Parameters
-
arrayCake\Database\ExpressionInterface$conditions optional Условия для проверки. Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
-
arrayCake\Database\ExpressionInterface$values optional ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если $values больше, чем $conditions, последнее $value используется как
ELSEзначение.-
array$types optional ассоциативный массив типов, которые будут связаны со значениями, переданными в $values
_addExpressions() protected
_addExpressions(array $conditions, array $values, array $types): void
Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если нет соответствующего истинного значения, оно устанавливается по умолчанию в '1'.
Parameters
-
array$conditions Массив экземпляров ExpressionInterface.
-
array$values ассоциативный массив значений каждого условия
-
array$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(array|stringCake\Database\ExpressionInterface $part, Cake\Database\ValueBinder $binder): string
Компилирует соответствующие части в sql
Parameters
-
array|stringCake\Database\ExpressionInterface$part Часть для компиляции
-
Cake\Database\ValueBinder$binder Генератор Sql
Returns
string_requiresToExpressionCasting() protected
_requiresToExpressionCasting(array $types): array
Возвращает массив с типами, которые требуют приведения значений к выражениям, из списка имен типов, переданных в качестве параметра.
Parameters
-
array$types Список имен типов
Returns
arrayadd() public
add(arrayCake\Database\ExpressionInterface $conditions = [], arrayCake\Database\ExpressionInterface $values = [], array $types = []): $this
Добавляет одно или несколько условий и их соответствующие истинные значения к объекту case. Условия должны быть одномерным массивом или QueryExpression. TrueValues должны иметь аналогичную структуру, но могут содержать строковое значение.
Parameters
-
arrayCake\Database\ExpressionInterface$conditions optional Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
-
arrayCake\Database\ExpressionInterface$values optional ассоциативный массив значений каждого условия
-
array$types optional ассоциативный массив типов, которые будут связаны со значениями
Returns
$thiselseValue() public
elseValue(Cake\Database\ExpressionInterface|string|array|null $value = null, string|null $type = null): void
Устанавливает значение по умолчанию
Parameters
-
Cake\Database\ExpressionInterface|string|array|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
stringCake\Database\ExpressionInterface|array|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.2/class-Cake.Database.Expression.CaseExpression.html