\Cake\Database\ExpressionComparison

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`

Summary

Methods
Properties
Constants
setField()
getField()
__construct()
setValue()
getValue()
setOperator()
getOperator()
sql()
traverse()
__clone()
No public properties found
No constants found
_castToExpression()
_requiresToExpressionCasting()
_stringExpression()
_bindValue()
_flattenValue()
_collectExpressions()
$_field
$_value
$_type
$_operator
$_isMultiple
$_valueExpressions
N/A
No private methods found
No private properties found
N/A

Properties

$_field

$_field : string|\Cake\Database\ExpressionInterface

The field name or expression to be used in the left hand side of the operator

Type

string|\Cake\Database\ExpressionInterface

$_value

$_value : mixed

The value to be used in the right hand side of the operation

Type

mixed

$_type

$_type : string|array

The type to be used for casting the value to a database representation

Type

string|array

$_operator

$_operator : string

The operator used for comparing field and value

Type

string

$_isMultiple

$_isMultiple : boolean

Whether or not the value in this expression is a traversable

Type

boolean

$_valueExpressions

$_valueExpressions : array<mixed,\Cake\Database\ExpressionInterface>

A cached list of ExpressionInterface objects that were found in the value for this expression.

Type

array<mixed,\Cake\Database\ExpressionInterface>

Methods

setField()

setField(string|\Cake\Database\ExpressionInterface  $field) : void

Sets the field name

Parameters

string|\Cake\Database\ExpressionInterface $field

The field to compare with.

__construct()

__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

setValue()

setValue(mixed  $value) : void

Sets the value

Parameters

mixed $value

The value to compare

getValue()

getValue() : mixed

Returns the value used for comparison

Returns

mixed

setOperator()

setOperator(string  $operator) : void

Sets the operator to use for the comparison

Parameters

string $operator

The operator to be used for the comparison.

getOperator()

getOperator() : string

Returns the operator used for comparison

Returns

string

sql()

sql(\Cake\Database\ValueBinder  $generator) : string

Convert the expression into a SQL fragment.

Parameters

\Cake\Database\ValueBinder $generator

Placeholder generator object

Returns

string

traverse()

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

__clone()

__clone() : void

Create a deep clone.

Clones the field and value if they are expression objects.

_castToExpression()

_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

_requiresToExpressionCasting()

_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()

_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

array —

First position containing the template and the second a placeholder

_bindValue()

_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

string —

generated placeholder

_flattenValue()

_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

the type to cast values to

Returns

string

_collectExpressions()

_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