Class TupleComparison
This expression represents SQL fragments that are used for comparing one tuple to another, one tuple to a set of other tuples or one tuple to an expression
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
array<string|null>The 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
array<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 $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
-
_stringifyValues() protected
Returns a string with the values as placeholders in a string to be used for the SQL version of this expression
-
_traverseValue() protected
Conditionally executes the callback for the passed value if it is an ExpressionInterface
-
getField() public
Returns the field name
-
getOperator() public
Returns the operator used for comparison
-
getType() public
Returns the type to be used for casting the value to a database representation
-
getValue() public
Returns the value used for comparison
-
isMulti() public
Determines if each of the values in this expressions is a tuple in itself
-
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|array|string $fields, Cake\Database\ExpressionInterface|array $values, array<string|null> $types = [], string $conjunction = '=')
Constructor
Parameters
-
Cake\Database\ExpressionInterface|array|string$fields the fields to use to form a tuple
-
Cake\Database\ExpressionInterface|array$values the values to use to form a tuple
-
array<string|null>$types optional the types names to use for casting each of the values, only one type per position in the value array in needed
-
string$conjunction 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 -
Cake\Database\ValueBinder$binder -
string|null$type optional
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
array_stringifyValues() ¶ protected
_stringifyValues(Cake\Database\ValueBinder $binder): string
Returns a string with the values as placeholders in a string to be used for the SQL version of this expression
Parameters
-
Cake\Database\ValueBinder$binder The value binder to convert expressions with.
Returns
string_traverseValue() ¶ protected
_traverseValue(mixed $value, Closure $callback): void
Conditionally executes the callback for the passed value if it is an ExpressionInterface
Parameters
-
mixed$value The value to traverse
-
Closure$callback The callable to use when traversing
Returns
voidgetField() ¶ 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
stringgetType() ¶ public
getType(): array<string|null>
Returns the type to be used for casting the value to a database representation
Returns
array<string|null>isMulti() ¶ public
isMulti(): bool
Determines if each of the values in this expressions is a tuple in itself
Returns
boolsetField() ¶ 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$_type ¶ protected
The type to be used for casting the value to a database representation
Type
array<string|null>$_valueExpressions ¶ protected
A cached list of ExpressionInterface objects that were found in the value for this expression.
Type
array<Cake\Database\ExpressionInterface>