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
Property Summary
- 
        $_field protected
string|Cake\Database\ExpressionInterfaceThe field name or expression to be used in the left hand side of the operator
 - 
        $_isMultiple protected
boolWhether or not the value in this expression is a traversable
 - 
        $_operator protected
stringThe operator used for comparing field and value
 - 
        $_type protected
string|arrayThe 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
Cake\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 $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
 - 
          
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
Convert 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() ¶ public
__clone(): void
      Create a deep clone.
Clones the field and value if they are expression objects.
Returns
void__construct() ¶ 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() ¶ protected
_bindValue(mixed $value, Cake\Database\ValueBinder $generator, string $type): string
      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
_castToExpression() ¶ protected
_castToExpression(mixed $value, string $type): 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 converto to ExpressionInterface
- 
                
string$type The type name
Returns
mixed_collectExpressions() ¶ protected
_collectExpressions(array|Traversable $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
- 
                
array|Traversable$values The rows to insert
Returns
array_flattenValue() ¶ protected
_flattenValue(array|Traversable $value, Cake\Database\ValueBinder $generator, string|array|null $type = 'string'): 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$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 $generator): array
      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
getField() ¶ public
getField(): string|Cake\Database\ExpressionInterface
      Returns the field name
Returns
string|Cake\Database\ExpressionInterfacegetOperator() ¶ public
getOperator(): string
      Returns the operator used for comparison
Returns
stringsetField() ¶ public
setField(string|Cake\Database\ExpressionInterface $field): void
      Sets the field name
Parameters
- 
                
string|Cake\Database\ExpressionInterface$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 $generator): string
      Convert the expression into a SQL fragment.
Parameters
- 
                
Cake\Database\ValueBinder$generator Placeholder generator object
Returns
stringtraverse() ¶ public
traverse(callable $callable): void
      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 
Returns
voidProperty Detail
$_field ¶ protected
The field name or expression to be used in the left hand side of the operator
Type
string|Cake\Database\ExpressionInterface$_type ¶ protected
The type to be used for casting the value to a database representation
Type
string|array$_valueExpressions ¶ protected
A cached list of ExpressionInterface objects that were found in the value for this expression.
Type
Cake\Database\ExpressionInterface[]