This class represents a SQL Case statement
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"
string|\Cake\Database\ExpressionInterface|array|null
The ELSE
value for the case statement. If null then no ELSE
will be included.
array
Values that are associated with the conditions in the $_conditions array.
Iterates over the passed in conditions and ensures that there is a matching true value for each.
Conditionally converts the passed value to an ExpressionInterface object if the type class implements the ExpressionTypeInterface. Otherwise, returns the value unmodified.
Returns an array with the types that require values to be casted to expressions, out of the list of type names passed as parameter.
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(mixed $conditions, mixed $values, mixed $types)
Constructs the case expression
array|\Cake\Database\ExpressionInterface
$conditions optional The conditions to test. Must be a ExpressionInterface instance, or an array of ExpressionInterface instances.
array|\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.
array
$types optional associative array of types to be associated with the values passed in $values
_addExpressions(array $conditions, array $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'.
array
$conditions Array of ExpressionInterface instances.
array
$values associative array of values of each condition
array
$types associative array of types to be associated with the values
_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.
mixed
$value The value to converto to ExpressionInterface
string|null
$type optional The type name
mixed
_compile(mixed $part, \Cake\Database\ValueBinder $generator)
Compiles the relevant parts into sql
array|string|\Cake\Database\ExpressionInterface
$part The part to compile
\Cake\Database\ValueBinder
$generator Sql generator
string
_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.
array
$types List of type names
array
add(mixed $conditions, mixed $values, mixed $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.
array|\Cake\Database\ExpressionInterface
$conditions optional Must be a ExpressionInterface instance, or an array of ExpressionInterface instances.
array|\Cake\Database\ExpressionInterface
$values optional associative array of values of each condition
array
$types optional associative array of types to be associated with the values
$this
elseValue(mixed $value, ?string $type)
Sets the default value
\Cake\Database\ExpressionInterface|string|array|null
$value optional Value to set
string|null
$type optional Type of value
sql(\Cake\Database\ValueBinder $generator)
Converts the Node into a SQL string fragment.
\Cake\Database\ValueBinder
$generator Placeholder generator object
string
traverse(\Closure $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.
\Closure
$visitor The callable to apply to all nodes.
$this
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"
array
The ELSE
value for the case statement. If null then no ELSE
will be included.
string|\Cake\Database\ExpressionInterface|array|null
Values that are associated with the conditions in the $_conditions array.
Each value represents the 'true' value for the condition with the corresponding key.
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.1/class-Cake.Database.Expression.CaseExpression.html