CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Team
    • Issues (Github)
    • YouTube Channel
    • Get Involved
    • Bakery
    • Featured Resources
    • Newsletter
    • Certification
    • My CakePHP
    • CakeFest
    • Facebook
    • Twitter
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 4.0 Strawberry API

  • Overview
  • Version:
    • 4.0
      • 4.0
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
      • Dialect
      • Driver
      • Exception
      • Expression
      • Log
      • Retry
      • Schema
      • Statement
      • Type
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class ValuesExpression

An expression object to contain values being inserted.

Helps generate SQL with the correct number of placeholders and bind values correctly into the statement.

Namespace: Cake\Database\Expression

Properties summary

  • $_castedExpressions protected
    bool

    Whether or not values have been casted to expressions already.

  • $_columns protected
    array

    List of columns to ensure are part of the insert.

  • $_query protected
    \Cake\Database\Query|null

    The Query object to use as a values expression

  • $_typeMap protected
    \Cake\Database\TypeMap
  • $_values protected
    array

    Array of values to insert.

Method Summary

  • __construct() public

    Constructor

  • _castToExpression() protected

    Conditionally converts the passed value to an ExpressionInterface object if the type class implements the ExpressionTypeInterface. Otherwise, returns the value unmodified.

  • _columnNames() protected

    Get the bare column names.

  • _processExpressions() protected

    Converts values that need to be casted to expressions

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

  • add() public

    Add a row of data to be inserted.

  • getColumns() public

    Gets the columns to be inserted.

  • getDefaultTypes() public

    Gets default types of current type map.

  • getQuery() public

    Gets the query object to be used as the values expression to be evaluated to insert records in the table.

  • getTypeMap() public

    Returns the existing type map.

  • getValues() public

    Gets the values to be inserted.

  • setColumns() public

    Sets the columns to be inserted.

  • setDefaultTypes() public

    Overwrite the default type mappings for fields in the implementing object.

  • setQuery() public

    Sets the query object to be used as the values expression to be evaluated to insert records in the table.

  • setTypeMap() public

    Creates a new TypeMap if $typeMap is an array, otherwise exchanges it for the given one.

  • setValues() public

    Sets the values to be inserted.

  • sql() public

    Convert the values into a SQL string with placeholders.

  • traverse() public

    Traverse the values expression.

Method Detail

__construct() public

¶

__construct(array $columns, \Cake\Database\TypeMap $typeMap)

Constructor

Parameters
array $columns

The list of columns that are going to be part of the values.

\Cake\Database\TypeMap $typeMap

A dictionary of column -> type names

_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

_columnNames() protected

¶

_columnNames()

Get the bare column names.

Because column names could be identifier quoted, we need to strip the identifiers off of the columns.

Returns
array

_processExpressions() protected

¶

_processExpressions()

Converts values that need to be casted to expressions

_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

add() public

¶

add(mixed $data)

Add a row of data to be inserted.

Parameters
array|\Cake\Database\Query $data

Array of data to append into the insert, or a query for doing INSERT INTO .. SELECT style commands

Throws
Cake\Database\Exception
When mixing array + Query data types.

getColumns() public

¶

getColumns()

Gets the columns to be inserted.

Returns
array

getDefaultTypes() public

¶

getDefaultTypes()

Gets default types of current type map.

Returns
array

getQuery() public

¶

getQuery()

Gets the query object to be used as the values expression to be evaluated to insert records in the table.

Returns
\Cake\Database\Query|null

getTypeMap() public

¶

getTypeMap()

Returns the existing type map.

Returns
\Cake\Database\TypeMap

getValues() public

¶

getValues()

Gets the values to be inserted.

Returns
array

setColumns() public

¶

setColumns(array $cols)

Sets the columns to be inserted.

Parameters
array $cols

Array with columns to be inserted.

Returns
$this

setDefaultTypes() public

¶

setDefaultTypes(array $types)

Overwrite the default type mappings for fields in the implementing object.

This method is useful if you need to set type mappings that are shared across multiple functions/expressions in a query.

To add a default without overwriting existing ones use getTypeMap()->addDefaults()

Parameters
array $types

The array of types to set.

Returns
$this
See Also
\Cake\Database\TypeMap::setDefaults()

setQuery() public

¶

setQuery(\Cake\Database\Query $query)

Sets the query object to be used as the values expression to be evaluated to insert records in the table.

Parameters
\Cake\Database\Query $query

The query to set

Returns
$this

setTypeMap() public

¶

setTypeMap(mixed $typeMap)

Creates a new TypeMap if $typeMap is an array, otherwise exchanges it for the given one.

Parameters
array|\Cake\Database\TypeMap $typeMap

Creates a TypeMap if array, otherwise sets the given TypeMap

Returns
$this

setValues() public

¶

setValues(array $values)

Sets the values to be inserted.

Parameters
array $values

Array with values to be inserted.

Returns
$this

sql() public

¶

sql(\Cake\Database\ValueBinder $generator)

Convert the values into a SQL string with placeholders.

Parameters
\Cake\Database\ValueBinder $generator

Placeholder generator object

Returns
string

traverse() public

¶

traverse(\Closure $visitor)

Traverse the values expression.

This method will also traverse any queries that are to be used in the INSERT values.

Parameters
\Closure $visitor

The visitor to traverse the expression with.

Returns
$this

Property Detail

$_castedExpressions ¶ protected

Whether or not values have been casted to expressions already.

Type
bool

$_columns ¶ protected

List of columns to ensure are part of the insert.

Type
array

$_query ¶ protected

The Query object to use as a values expression

Type
\Cake\Database\Query|null

$_typeMap ¶ protected

Type
\Cake\Database\TypeMap

$_values ¶ protected

Array of values to insert.

Type
array