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
Property Summary
- $_field protected
Cake\Database\ExpressionInterface|array|stringThe field name or expression to be used in the left hand side of the operator
- $_isMultiple protected
boolWhether the value in this expression is a traversable
- $_operator protected
stringThe operator used for comparing field and value
- $_type protected
string|nullThe type to be used for casting the value to a database representation
- $_value protected
mixedThe value to be used in the right hand side of the operation
- $_valueExpressions protected
arrayCake\Database\ExpressionInterface>A cached list of ExpressionInterface objects that were found in the value for this expression.
Method Summary
-
__clone() public
Create a deep clone.
-
__construct() public
Constructor
-
_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 $binder 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 $binder
-
getField() public
Returns the field name
-
getOperator() public
Returns the operator used for comparison
-
getValue() public
Returns the value used for comparison
-
setField() public
Sets the field name
-
setOperator() public
Sets the operator to use for the comparison
-
setValue() public
Sets the value
-
sql() public
Converts the Node into a SQL string fragment.
-
traverse() public
Iterates over each part of the expression recursively for every level of the expressions tree and executes the $callback callable passing as first parameter the instance of the expression currently being iterated.
Method Detail
__clone() public
__clone(): void
Create a deep clone.
Clones the field and value if they are expression objects.
Returns
void__construct() public
__construct(Cake\Database\ExpressionInterface|string $field, mixed $value, string|null $type = null, string $operator = '=')
Constructor
Parameters
-
Cake\Database\ExpressionInterface|string$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 $binder, string|null $type = null): string
Registers a value in the placeholder generator and returns the generated placeholder
Parameters
-
mixed$value The value to bind
-
Cake\Database\ValueBinder$binder The value binder to use
-
string|null$type optional The type of $value
Returns
string_castToExpression() protected
_castToExpression(mixed $value, string|null $type = null): mixed
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 convert to ExpressionInterface
-
string|null$type optional The type name
Returns
mixed_collectExpressions() protected
_collectExpressions(Cake\Database\ExpressionInterface|iterable $values): array
Returns an array with the original $values in the first position and all ExpressionInterface objects that could be found in the second position.
Parameters
-
Cake\Database\ExpressionInterface|iterable$values The rows to insert
Returns
array_flattenValue() protected
_flattenValue(iterable $value, Cake\Database\ValueBinder $binder, string|null $type = null): string
Converts a traversable value into a set of placeholders generated by $binder and separated by ,
Parameters
-
iterable$value the value to flatten
-
Cake\Database\ValueBinder$binder The value binder to use
-
string|null$type optional the type to cast values to
Returns
string_requiresToExpressionCasting() protected
_requiresToExpressionCasting(array $types): array
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 $binder): array
Returns a template and a placeholder for the value after registering it with the placeholder $binder
Parameters
-
Cake\Database\ValueBinder$binder The value binder to use.
Returns
arraygetField() public
getField(): Cake\Database\ExpressionInterface|array|string
Returns the field name
Returns
Cake\Database\ExpressionInterface|array|stringgetOperator() public
getOperator(): string
Returns the operator used for comparison
Returns
stringgetValue() public
getValue(): mixed
Returns the value used for comparison
Returns
mixedsetField() public
setField(Cake\Database\ExpressionInterface|array|string $field): void
Sets the field name
Parameters
-
Cake\Database\ExpressionInterface|array|string$field The field to compare with.
Returns
voidsetOperator() public
setOperator(string $operator): void
Sets the operator to use for the comparison
Parameters
-
string$operator The operator to be used for the comparison.
Returns
voidsetValue() public
setValue(mixed $value): void
Sets the value
Parameters
-
mixed$value The value to compare
Returns
voidsql() public
sql(Cake\Database\ValueBinder $binder): string
Converts the Node into a SQL string fragment.
Parameters
-
Cake\Database\ValueBinder$binder
Returns
stringtraverse() public
traverse(Closure $callback): $this
Iterates over each part of the expression recursively for every level of the expressions tree and executes the $callback callable passing as first parameter the instance of the expression currently being iterated.
Parameters
-
Closure$callback
Returns
$thisProperty Detail
$_field protected
The field name or expression to be used in the left hand side of the operator
Type
Cake\Database\ExpressionInterface|array|string$_isMultiple protected
Whether 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
arrayCake\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.4/class-Cake.Database.Expression.ComparisonExpression.html