Класс CaseExpression
Этот класс представляет оператор SQL Case.
- Cake\Database\Expression\CaseExpression реализует Cake\Database\ExpressionInterface использует Cake\Database\Type\ExpressionTypeCasterTrait
Краткое описание свойств
-
$_conditionsprotectedarrayСписок строк или других объектов выражений, представляющих условия оператора case. Например, один ключ массива может выглядеть как "sum > :value".
-
$_elseValueprotectedЗначение по умолчанию для оператора case. Если null, то значение по умолчанию не будет включено.string|Cake\Database\ExpressionInterface|array|null -
$_valuesprotectedarrayЗначения, связанные с условиями в массиве $_conditions. Каждое значение представляет истинное значение для условия с соответствующим ключом.
Краткое описание методов
- __construct() publicКонструктор выражения case
- _addExpressions() protected
Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если соответствующего истинного значения нет, то оно по умолчанию устанавливается в '1'.
- _compile() protectedКомпилирует соответствующие части в SQL
- add() public
Добавляет одно или несколько условий и их соответствующие истинные значения в объект case. Условия должны быть одномерным массивом или объектом QueryExpression. Истинные значения должны иметь аналогичную структуру, но могут содержать строковое значение.
- elseValue() publicУстанавливает значение по умолчанию
- sql() publicПреобразует узел в фрагмент строки SQL.
- traverse() public
Рекурсивно перебирает каждую часть выражения на каждом уровне дерева выражений и выполняет вызов $visitor, передавая в качестве первого параметра экземпляр выражения, который в данный момент обрабатывается.
Подробное описание методов
__construct()source public
__construct( array|Cake\Database\ExpressionInterface $conditions [] , array|Cake\Database\ExpressionInterface $values [] , array $types [] )
Конструктор выражения case
Параметры
- array|
Cake\Database\ExpressionInterface$conditionsнеобязательно [] Условия для проверки. Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
- array|
Cake\Database\ExpressionInterface$valuesнеобязательно [] Ассоциативный массив значений, которые будут связаны с условиями, переданными в $conditions. Если значений $values больше, чем условий $conditions, последнее значение $value используется как значение по умолчанию.
- array
$typesнеобязательно [] Ассоциативный массив типов, которые будут связаны со значениями, переданными в $values
_addExpressions()source protected
_addExpressions( array|Cake\Database\ExpressionInterface $conditions , array|Cake\Database\ExpressionInterface $values , array $types )
Перебирает переданные условия и гарантирует, что для каждого из них есть соответствующее истинное значение. Если соответствующего истинного значения нет, то оно по умолчанию устанавливается в '1'.
Параметры
- array|
Cake\Database\ExpressionInterface$conditions - Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
- array|
Cake\Database\ExpressionInterface$values - Ассоциативный массив значений каждого условия
- array
$types - Ассоциативный массив типов, которые будут связаны со значениями
_compile()source protected
_compile( array|string|Cake\Database\ExpressionInterface $part , Cake\Database\ValueBinder $generator )
Компилирует соответствующие части в SQL
Параметры
- array|string|
Cake\Database\ExpressionInterface$part - Часть для компиляции
- Cake\Database\ValueBinder
$generator - Генератор SQL
Возвращает
строкаadd()source public
add( array|Cake\Database\ExpressionInterface $conditions [] , array|Cake\Database\ExpressionInterface $values [] , array $types [] )
Добавляет одно или несколько условий и их соответствующие истинные значения в объект case. Условия должны быть одномерным массивом или объектом QueryExpression. Истинные значения должны иметь аналогичную структуру, но могут содержать строковое значение.
Параметры
- array|
Cake\Database\ExpressionInterface$conditionsнеобязательно [] - Должен быть экземпляр ExpressionInterface или массив экземпляров ExpressionInterface.
- array|
Cake\Database\ExpressionInterface$valuesнеобязательно [] - Ассоциативный массив значений каждого условия
- array
$typesнеобязательно [] - Ассоциативный массив типов, которые будут связаны со значениями
Возвращает
$this
elseValue()source public
elseValue( Cake\Database\ExpressionInterface|string|array|null $value null , string|null $type null )
Устанавливает значение по умолчанию
Параметры
-
Cake\Database\ExpressionInterface|string|array|null$valueнеобязательно null - Значение для установки
- string|null
$typeнеобязательно null - Тип значения
sql()source public
sql( Cake\Database\ValueBinder $generator )
Преобразует узел в фрагмент строки SQL.
Параметры
- Cake\Database\ValueBinder
$generator - Объект генератора заглушек
Возвращает
строкаРеализация
Cake\Database\ExpressionInterface::sql() traverse()source public
traverse( callable $visitor )
Рекурсивно перебирает каждую часть выражения на каждом уровне дерева выражений и выполняет вызов $visitor, передавая в качестве первого параметра экземпляр выражения, который в данный момент обрабатывается.
Параметры
- callable
$visitor - Выполняемый код, который необходимо применить ко всем узлам.
Реализация
Cake\Database\ExpressionInterface::traverse() Методы, используемые из Cake\Database\Type\ExpressionTypeCasterTrait
_castToExpression()source protected
_castToExpression( mixed $value , string $type )
Условно преобразует переданное значение в объект ExpressionInterface, если класс типа реализует ExpressionTypeInterface. В противном случае возвращает значение без изменений.
Параметры
- mixed
$value - Значение, которое нужно преобразовать в ExpressionInterface
- string
$type - Имя типа
Возвращает
смешанное_requiresToExpressionCasting()source protected
_requiresToExpressionCasting( array $types )
Возвращает массив с типами, которые требуют преобразования значений в выражения, из списка имен типов, переданных в качестве параметра.
Параметры
- array
$types - Список имен типов
Возвращает
массивПодробное описание свойств
$_conditionssource
protected массив
Список строк или других объектов выражений, представляющих условия оператора case. Например, один ключ массива может выглядеть как "sum > :value".
[]
$_elseValuesource
protected строка|Cake\Database\ExpressionInterface|массив|null
Значение ELSE для оператора case. Если null, то ELSE не будет включено.
$_valuessource
protected массив
Значения, связанные с условиями в массиве $_conditions. Каждое значение представляет собой значение 'true' для условия с соответствующим ключом.
[]
© 2005–2017 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/3.4/class-Cake.Database.Expression.CaseExpression.html