Class Comparison
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
- Cake\Database\Expression\Comparison implements Cake\Database\ExpressionInterface, Cake\Database\Expression\FieldInterface uses Cake\Database\Type\ExpressionTypeCasterTrait , Cake\Database\Expression\FieldTrait
 
Direct Subclasses
Properties summary
-  
$_isMultipleprotectedWhether or not the value in this expression is a traversableboolean -  
$_operatorprotectedThe operator used for comparing field and valuestring -  
$_typeprotectedThe type to be used for casting the value to a database representationstring|array -  
$_valueprotectedThe value to be used in the right hand side of the operationmixed -  
$_valueExpressionsprotectedA cached list of ExpressionInterface objects that were found in the value for this expression.
 
Inherited Properties
Method Summary
-  __clone() publicCreate a deep clone.
 -  __construct() publicConstructor
 -  _bindValue() protectedRegisters a value in the placeholder generator and returns the generated placeholder
 -  _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
, -  _stringExpression() protected
Returns a template and a placeholder for the value after registering it with the placeholder $generator
 -  getOperator() publicReturns the operator used for comparison
 -  getValue() publicReturns the value used for comparison
 -  setOperator() publicSets the operator to use for the comparison
 -  setValue() publicSets the value
 -  sql() publicConvert the expression into a SQL fragment.
 -  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()source public
__clone( )
Create a deep clone.
Clones the field and value if they are expression objects.
__construct()source public
__construct( string|Cake\Database\ExpressionInterface $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 
$type - the type name used to cast the value
 -  string 
$operator - the operator used for comparing field and value
 
_bindValue()source 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 
$type - The type of $value
 
Returns
stringgenerated placeholder
_collectExpressions()source protected
_collectExpressions( array|Traversable $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
-  array|Traversable 
$values - The rows to insert
 
Returns
array_flattenValue()source protected
_flattenValue( array|Traversable $value , Cake\Database\ValueBinder $generator , string|array|null $type = 'string' )
Converts a traversable value into a set of placeholders generated by $generator and separated by ,
Parameters
-  array|Traversable 
$value - the value to flatten
 -  Cake\Database\ValueBinder 
$generator - The value binder to use
 -  string|array|null 
$typeoptional 'string' - the type to cast values to
 
Returns
string_stringExpression()source 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
arrayFirst position containing the template and the second a placeholder
setOperator()source public
setOperator( string $operator )
Sets the operator to use for the comparison
Parameters
-  string 
$operator - The operator to be used for the comparison.
 
setValue()source public
setValue( mixed $value )
Sets the value
Parameters
-  mixed 
$value - The value to compare
 
sql()source public
sql( Cake\Database\ValueBinder $generator )
Convert the expression into a SQL fragment.
Parameters
-  Cake\Database\ValueBinder 
$generator - Placeholder generator object
 
Returns
stringImplementation of
Cake\Database\ExpressionInterface::sql()  traverse()source public
traverse( callable $callable )
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
-  callable 
$callable - $visitor The callable to apply to all nodes.
 
Implementation of
Cake\Database\ExpressionInterface::traverse()  Methods used from Cake\Database\Type\ExpressionTypeCasterTrait
_castToExpression()source 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 
$type - The type name
 
Returns
mixed_requiresToExpressionCasting()source 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
arrayMethods used from Cake\Database\Expression\FieldTrait
getField()source public
getField( )
Returns the field name
Returns
string|Cake\Database\ExpressionInterfacesetField()source public
setField( string|Cake\Database\ExpressionInterface $field )
Sets the field name
Parameters
-  string|
Cake\Database\ExpressionInterface$field - The field to compare with.
 
Properties detail
$_isMultiplesource
protected boolean
Whether or not the value in this expression is a traversable
false
$_typesource
protected string|array
The type to be used for casting the value to a database representation
$_valueExpressionssource
 protected Cake\Database\ExpressionInterface[] 
A cached list of ExpressionInterface objects that were found in the value for this expression.
[]
    © 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/3.8/class-Cake.Database.Expression.Comparison.html