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

Properties summary

  • $_field protected
    string|array|\Cake\Database\ExpressionInterface

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

  • $_isMultiple protected
    bool

    Whether or not the value in this expression is a traversable

  • $_operator protected
    string

    The operator used for comparing field and value

  • $_type protected
    array

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

  • $_value protected
    mixed

    The 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

  • _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

  • 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

    Convert the expression into a SQL fragment.

  • traverse() public

    Traverses the tree of expressions stored in this object, visiting first expressions in the left hand side and then the rest.

Method Detail

__clone() public

__clone()

Create a deep clone.

Clones the field and value if they are expression objects.

__construct() public

__construct(mixed $fields, mixed $values, array $types, string $conjunction)

Constructor

Parameters

string|array|\Cake\Database\ExpressionInterface $fields

the fields to use to form a tuple

array|\Cake\Database\ExpressionInterface $values

the values to use to form a tuple

array $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 $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|null $type optional

The type of $value

Returns

string

generated placeholder

_castToExpression() 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|null $type optional

The type name

Returns

mixed

_collectExpressions() protected

_collectExpressions(mixed $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

iterable|\Cake\Database\ExpressionInterface $values

The rows to insert

Returns

array

_flattenValue() protected

_flattenValue(iterable $value, \Cake\Database\ValueBinder $generator, ?string $type)

Converts a traversable value into a set of placeholders generated by $generator and separated by ,

Parameters

iterable $value

the value to flatten

\Cake\Database\ValueBinder $generator

The value binder to use

string|null $type optional

the type to cast values to

Returns

string

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

array

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

array

First position containing the template and the second a placeholder

_stringifyValues() protected

_stringifyValues(\Cake\Database\ValueBinder $generator)

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 $generator

The value binder to convert expressions with.

Returns

string

_traverseValue() protected

_traverseValue(mixed $value, \Closure $callable)

Conditionally executes the callback for the passed value if it is an ExpressionInterface

Parameters

mixed $value

The value to traverse

\Closure $callable

The callable to use when traversing

getField() public

getField()

Returns the field name

Returns

string|array|\Cake\Database\ExpressionInterface

getOperator() public

getOperator()

Returns the operator used for comparison

Returns

string

getValue() public

getValue()

Returns the value used for comparison

Returns

mixed

isMulti() public

isMulti()

Determines if each of the values in this expressions is a tuple in itself

Returns

bool

setField() public

setField(mixed $field)

Sets the field name

Parameters

string|array|\Cake\Database\ExpressionInterface $field

The field to compare with.

setOperator() public

setOperator(string $operator)

Sets the operator to use for the comparison

Parameters

string $operator

The operator to be used for the comparison.

setValue() public

setValue(mixed $value)

Sets the value

Parameters

mixed $value

The value to compare

sql() public

sql(\Cake\Database\ValueBinder $generator)

Convert the expression into a SQL fragment.

Parameters

\Cake\Database\ValueBinder $generator

Placeholder generator object

Returns

string

traverse() public

traverse(\Closure $visitor)

Traverses the tree of expressions stored in this object, visiting first expressions in the left hand side and then the rest.

Callback function receives as its only argument an instance of an ExpressionInterface

Parameters

\Closure $visitor

The callable to apply to sub-expressions

Returns

$this

Property Detail

$_field protected

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

Type

string|array|\Cake\Database\ExpressionInterface

$_isMultiple protected

Whether or not 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

array

$_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

\Cake\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.1/class-Cake.Database.Expression.TupleComparison.html