Class ComparisonExpression
A Comparison is a type of query expression that represents an operation involving a field an operator and a value. In its most common form the string representation of a comparison is field = value
Properties summary
- $_field protected
string|array|\Cake\Database\ExpressionInterface
The field name or expression to be used in the left hand side of the operator
- $_isMultiple protected
bool
Whether or not the value in this expression is a traversable
- $_operator protected
string
The operator used for comparing field and value
- $_type protected
string|null
The type to be used for casting the value to a database representation
- $_value protected
mixed
The value to be used in the right hand side of the operation
- $_valueExpressions protected
\Cake\Database\ExpressionInterface[]
A cached list of ExpressionInterface objects that were found in the value for this expression.
Method Summary
- _bindValue() protected
Registers a value in the placeholder generator and returns the generated placeholder
- _castToExpression() protected
Conditionally converts the passed value to an ExpressionInterface object if the type class implements the ExpressionTypeInterface. Otherwise, returns the value unmodified.
- _collectExpressions() protected
Returns an array with the original $values in the first position and all ExpressionInterface objects that could be found in the second position.
- _flattenValue() protected
Converts a traversable value into a set of placeholders generated by $generator and separated by
,
- _requiresToExpressionCasting() protected
Returns an array with the types that require values to be casted to expressions, out of the list of type names passed as parameter.
- _stringExpression() protected
Returns a template and a placeholder for the value after registering it with the placeholder $generator
- traverse() public
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.
Method Detail
__clone() public
__clone()
Create a deep clone.
Clones the field and value if they are expression objects.
__construct() public
__construct(mixed $field, mixed $value, ?string $type, string $operator)
Constructor
Parameters
-
string|\Cake\Database\ExpressionInterface
$field the field name to compare to a value
-
mixed
$value The value to be used in comparison
-
string|null
$type optional the type name used to cast the value
-
string
$operator optional the operator used for comparing field and value
_bindValue() protected
_bindValue(mixed $value, \Cake\Database\ValueBinder $generator, ?string $type)
Registers a value in the placeholder generator and returns the generated placeholder
Parameters
-
mixed
$value The value to bind
-
\Cake\Database\ValueBinder
$generator The value binder to use
-
string|null
$type optional The type of $value
Returns
string
generated placeholder
_castToExpression() protected
_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.
Parameters
-
mixed
$value The value to converto to ExpressionInterface
-
string|null
$type optional The type name
Returns
mixed
_collectExpressions() protected
_collectExpressions(mixed $values)
Returns an array with the original $values in the first position and all ExpressionInterface objects that could be found in the second position.
Parameters
-
iterable|\Cake\Database\ExpressionInterface
$values The rows to insert
Returns
array
_flattenValue() protected
_flattenValue(iterable $value, \Cake\Database\ValueBinder $generator, ?string $type)
Converts a traversable value into a set of placeholders generated by $generator and separated by ,
Parameters
-
iterable
$value the value to flatten
-
\Cake\Database\ValueBinder
$generator The value binder to use
-
string|null
$type optional the type to cast values to
Returns
string
_requiresToExpressionCasting() protected
_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.
Parameters
-
array
$types List of type names
Returns
array
_stringExpression() protected
_stringExpression(\Cake\Database\ValueBinder $generator)
Returns a template and a placeholder for the value after registering it with the placeholder $generator
Parameters
-
\Cake\Database\ValueBinder
$generator The value binder to use.
Returns
array
First position containing the template and the second a placeholder
getField() public
getField()
Returns the field name
Returns
string|array|\Cake\Database\ExpressionInterface
getOperator() public
getOperator()
Returns the operator used for comparison
Returns
string
getValue() public
getValue()
Returns the value used for comparison
Returns
mixed
setField() public
setField(mixed $field)
Sets the field name
Parameters
-
string|array|\Cake\Database\ExpressionInterface
$field The field to compare with.
setOperator() public
setOperator(string $operator)
Sets the operator to use for the comparison
Parameters
-
string
$operator The operator to be used for the comparison.
setValue() public
setValue(mixed $value)
Sets the value
Parameters
-
mixed
$value The value to compare
sql() public
sql(\Cake\Database\ValueBinder $generator)
Convert the expression into a SQL fragment.
Parameters
-
\Cake\Database\ValueBinder
$generator Placeholder generator object
Returns
string
traverse() public
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.
Parameters
-
\Closure
$visitor The callable to apply to all nodes.
Returns
$this
Property Detail
$_field protected
The field name or expression to be used in the left hand side of the operator
Type
string|array|\Cake\Database\ExpressionInterface
$_isMultiple protected
Whether or not the value in this expression is a traversable
Type
bool
$_operator protected
The operator used for comparing field and value
Type
string
$_type protected
The type to be used for casting the value to a database representation
Type
string|null
$_value protected
The value to be used in the right hand side of the operation
Type
mixed
$_valueExpressions protected
A cached list of ExpressionInterface objects that were found in the value for this expression.
Type
\Cake\Database\ExpressionInterface[]
© 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.ComparisonExpression.html