This class represents a SQL Case statement
$_conditions
protected array
A list of strings or other expression objects that represent the conditions of the case statement. For example one key of the array might look like "sum > :value"
$_elseValue
protected string|Cake\Database\ExpressionInterface|array|null
ELSE
value for the case statement. If null then no ELSE
will be included. $_values
protected array
Values that are associated with the conditions in the $_conditions array. Each value represents the 'true' value for the condition with the corresponding key.
Iterates over the passed in conditions and ensures that there is a matching true value for each. If no matching true value, then it is defaulted to '1'.
Adds one or more conditions and their respective true values to the case object. Conditions must be a one dimensional array or a QueryExpression. The trueValues must be a similar structure, but may contain a string value.
Iterates over each part of the expression recursively for every level of the expressions tree and executes the $visitor callable passing as first parameter the instance of the expression currently being iterated.
__construct( array|Cake\Database\ExpressionInterface $conditions [] , array|Cake\Database\ExpressionInterface $values [] , array $types [] )
Constructs the case expression
Cake\Database\ExpressionInterface
$conditions
optional [] The conditions to test. Must be a ExpressionInterface instance, or an array of ExpressionInterface instances.
Cake\Database\ExpressionInterface
$values
optional [] associative array of values to be associated with the conditions passed in $conditions. If there are more $values than $conditions, the last $value is used as the ELSE
value
$types
optional [] associative array of types to be associated with the values passed in $values
_addExpressions( array|Cake\Database\ExpressionInterface $conditions , array|Cake\Database\ExpressionInterface $values , array $types )
Iterates over the passed in conditions and ensures that there is a matching true value for each. If no matching true value, then it is defaulted to '1'.
Cake\Database\ExpressionInterface
$conditions
Cake\Database\ExpressionInterface
$values
$types
_compile( array|string|Cake\Database\ExpressionInterface $part , Cake\Database\ValueBinder $generator )
Compiles the relevant parts into sql
Cake\Database\ExpressionInterface
$part
$generator
add( array|Cake\Database\ExpressionInterface $conditions [] , array|Cake\Database\ExpressionInterface $values [] , array $types [] )
Adds one or more conditions and their respective true values to the case object. Conditions must be a one dimensional array or a QueryExpression. The trueValues must be a similar structure, but may contain a string value.
Cake\Database\ExpressionInterface
$conditions
optional [] Cake\Database\ExpressionInterface
$values
optional [] $types
optional [] elseValue( Cake\Database\ExpressionInterface|string|array|null $value null , string|null $type null )
Sets the default value
Cake\Database\ExpressionInterface
|string|array|null $value
optional null $type
optional null sql( Cake\Database\ValueBinder $generator )
Converts the Node into a SQL string fragment.
$generator
Cake\Database\ExpressionInterface::sql()
traverse( callable $visitor )
Iterates over each part of the expression recursively for every level of the expressions tree and executes the $visitor callable passing as first parameter the instance of the expression currently being iterated.
$visitor
Cake\Database\ExpressionInterface::traverse()
_castToExpression( mixed $value , string $type )
Conditionally converts the passed value to an ExpressionInterface object if the type class implements the ExpressionTypeInterface. Otherwise, returns the value unmodified.
$value
$type
_requiresToExpressionCasting( array $types )
Returns an array with the types that require values to be casted to expressions, out of the list of type names passed as parameter.
$types
protected array
A list of strings or other expression objects that represent the conditions of the case statement. For example one key of the array might look like "sum > :value"
[]
protected string|Cake\Database\ExpressionInterface
|array|null
The ELSE
value for the case statement. If null then no ELSE
will be included.
protected array
Values that are associated with the conditions in the $_conditions array. Each value represents the 'true' value for the condition with the corresponding key.
[]
© 2005–2018 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.5/class-Cake.Database.Expression.CaseExpression.html