On this page
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