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 3.8 Red Velvet API

  • Overview
  • Tree
  • Deprecated
  • Version:
    • 3.8
      • 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
      • Storage
    • Cache
      • Engine
    • Collection
      • Iterator
    • Command
    • Console
      • Exception
    • Controller
      • Component
      • Exception
    • Core
      • Configure
        • Engine
      • Exception
      • Retry
    • Database
      • Driver
      • Exception
      • Expression
      • Schema
      • Statement
      • Type
    • Datasource
      • Exception
    • Error
      • Middleware
    • Event
      • Decorator
    • Filesystem
    • Form
    • Http
      • Client
        • Adapter
        • Auth
      • Cookie
      • Exception
      • Middleware
      • Session
    • I18n
      • Formatter
      • Middleware
      • Parser
    • Log
      • Engine
    • Mailer
      • Exception
      • Transport
    • Network
      • Exception
    • ORM
      • Association
      • Behavior
        • Translate
      • Exception
      • Locator
      • Rule
    • Routing
      • Exception
      • Filter
      • Middleware
      • Route
    • Shell
      • Helper
      • Task
    • TestSuite
      • Fixture
      • Stub
    • Utility
      • Exception
    • Validation
    • View
      • Exception
      • Form
      • Helper
      • Widget
  • None

Classes

  • BaseSchema
  • CachedCollection
  • Collection
  • MysqlSchema
  • PostgresSchema
  • SqliteSchema
  • SqlserverSchema
  • TableSchema

Interfaces

  • SqlGeneratorInterface
  • TableSchemaAwareInterface
  • TableSchemaInterface

Class TableSchema

Represents a single table in a database schema.

Can either be populated using the reflection API's or by incrementally building an instance using methods.

Once created TableSchema instances can be added to Schema\Collection objects. They can also be converted into SQL using the createSql(), dropSql() and truncateSql() methods.

Cake\Database\Schema\TableSchema implements Cake\Database\Schema\TableSchemaInterface, Cake\Database\Schema\SqlGeneratorInterface
Namespace: Cake\Database\Schema
Location: Database/Schema/TableSchema.php

Constants summary

  • string
    ACTION_CASCADE ¶
    'cascade'
  • string
    ACTION_NO_ACTION ¶
    'noAction'
  • string
    ACTION_RESTRICT ¶
    'restrict'
  • string
    ACTION_SET_DEFAULT ¶
    'setDefault'
  • string
    ACTION_SET_NULL ¶
    'setNull'
  • string
    CONSTRAINT_FOREIGN ¶
    'foreign'
  • string
    CONSTRAINT_PRIMARY ¶
    'primary'
  • string
    CONSTRAINT_UNIQUE ¶
    'unique'
  • string
    INDEX_FULLTEXT ¶
    'fulltext'
  • string
    INDEX_INDEX ¶
    'index'
  • integer
    LENGTH_LONG ¶
    4294967295
  • integer
    LENGTH_MEDIUM ¶
    16777215
  • integer
    LENGTH_TINY ¶
    255

Inherited Constants

  • TYPE_BIGINTEGER, TYPE_BINARY, TYPE_BINARY_UUID, TYPE_BOOLEAN, TYPE_DATE, TYPE_DATETIME, TYPE_DECIMAL, TYPE_FLOAT, TYPE_INTEGER, TYPE_JSON, TYPE_SMALLINTEGER, TYPE_STRING, TYPE_TEXT, TYPE_TIME, TYPE_TIMESTAMP, TYPE_TINYINTEGER, TYPE_UUID

Properties summary

  • $_columnExtras protected static
    array
    Additional type specific properties.
  • $_columnKeys protected static
    array

    The valid keys that can be used in a column definition.

  • $_columns protected
    array
    Columns in the table.
  • $_constraints protected
    array
    Constraints in the table.
  • $_indexKeys protected static
    array

    The valid keys that can be used in an index definition.

  • $_indexes protected
    array
    Indexes in the table.
  • $_options protected
    array
    Options for the table.
  • $_table protected
    string
    The name of the table
  • $_temporary protected
    boolean
    Whether or not the table is temporary
  • $_typeMap protected
    array
    A map with columns to types
  • $_validConstraintTypes protected static
    array
    Names of the valid constraint types.
  • $_validForeignKeyActions protected static
    array
    Names of the valid foreign key actions.
  • $_validIndexTypes protected static
    array
    Names of the valid index types.
  • $columnLengths public static
    array
    Valid column length that can be used with text type columns

Method Summary

  • __construct() public
    Constructor.
  • __debugInfo() public
    Returns an array of the table schema.
  • _checkForeignKey() protected
    Helper method to check/validate foreign keys.
  • addColumn() public
    Add a column to the table.
  • addConstraint() public
    Add a constraint.
  • addConstraintSql() public
    Generate the SQL statements to add the constraints to the table
  • addIndex() public
    Add an index.
  • baseColumnType() public

    Returns the base type name for the provided column. This represent the database type a more complex class is based upon.

  • column() public deprecated
    Get column data in the table.
  • columnType() public deprecated

    Sets the type of a column, or returns its current type if none is passed.

  • columns() public
    Get the column names in the table.
  • constraint() public deprecated
    Read information about a constraint based on name.
  • constraints() public
    Get the names of all the constraints in the table.
  • createSql() public
    Generate the SQL to create the Table.
  • defaultValues() public
    Get a hash of columns and their default values.
  • dropConstraint() public
    Remove a constraint.
  • dropConstraintSql() public
    Generate the SQL statements to drop the constraints to the table
  • dropSql() public
    Generate the SQL to drop a table.
  • getColumn() public
    Get column data in the table.
  • getColumnType() public
    Returns column type or null if a column does not exist.
  • getConstraint() public
    Read information about a constraint based on name.
  • getIndex() public
    Read information about an index based on name.
  • getOptions() public
    Gets the options for a table.
  • hasAutoincrement() public
    Check whether or not a table has an autoIncrement column defined.
  • hasColumn() public
    Returns true if a column exists in the schema.
  • index() public deprecated
    Read information about an index based on name.
  • indexes() public
    Get the names of all the indexes in the table.
  • isNullable() public
    Check whether or not a field is nullable
  • isTemporary() public
    Gets whether the table is temporary in the database.
  • name() public
    Get the name of the table.
  • options() public deprecated
    Get/set the options for a table.
  • primaryKey() public
    Get the column(s) used for the primary key.
  • removeColumn() public
    Remove a column from the table schema.
  • setColumnType() public
    Sets the type of a column.
  • setOptions() public
    Sets the options for a table.
  • setTemporary() public
    Sets whether the table is temporary in the database.
  • temporary() public deprecated
    Get/Set whether the table is temporary in the database
  • truncateSql() public
    Generate the SQL statements to truncate a table
  • typeMap() public

    Returns an array where the keys are the column names in the schema and the values the database type they have.

Method Detail

__construct() public ¶

__construct( string $table , array $columns = [] )

Constructor.

Parameters
string $table
The table name.
array $columns optional []
The list of columns for the schema.

__debugInfo() public ¶

__debugInfo( )

Returns an array of the table schema.

Returns
array

_checkForeignKey() protected ¶

_checkForeignKey( array $attrs )

Helper method to check/validate foreign keys.

Parameters
array $attrs
Attributes to set.
Returns
array
Throws
Cake\Database\Exception
When foreign key definition is not valid.

addColumn() public ¶

addColumn( string $name , array|string $attrs )

Add a column to the table.

Parameters
string $name
The name of the column
array|string $attrs
The attributes for the column.
Returns

$this
Implementation of
Cake\Datasource\SchemaInterface::addColumn()

addConstraint() public ¶

addConstraint( string $name , array $attrs )

Add a constraint.

Parameters
string $name
The name of the constraint.
array $attrs
The attributes for the constraint.
Returns

$this
Throws
Cake\Database\Exception
Implementation of
Cake\Database\Schema\TableSchemaInterface::addConstraint()

addConstraintSql() public ¶

addConstraintSql( Cake\Database\Connection $connection )

Generate the SQL statements to add the constraints to the table

Parameters
Cake\Database\Connection $connection
The connection to generate SQL for.
Returns
array
SQL to add the constraints.
Implementation of
Cake\Database\Schema\SqlGeneratorInterface::addConstraintSql()

addIndex() public ¶

addIndex( string $name , array $attrs )

Add an index.

Parameters
string $name
The name of the index.
array $attrs
The attributes for the index.
Returns

$this
Throws
Cake\Database\Exception
Implementation of
Cake\Database\Schema\TableSchemaInterface::addIndex()

baseColumnType() public ¶

baseColumnType( string $column )

Returns the base type name for the provided column. This represent the database type a more complex class is based upon.

Parameters
string $column
The column name to get the base type from
Returns
string|null
The base type name
Implementation of
Cake\Datasource\SchemaInterface::baseColumnType()

column() public deprecated ¶

column( string $name )

Get column data in the table.

Deprecated
3.5.0 Use getColumn() instead.
Parameters
string $name
The column name.
Returns
array|null
Column data or null.

columnType() public deprecated ¶

columnType( string $name , string|null $type = null )

Sets the type of a column, or returns its current type if none is passed.

Deprecated
3.5.0 Use setColumnType()/getColumnType() instead.
Parameters
string $name
The column to get the type of.
string|null $type optional null
The type to set the column to.
Returns
string|null
Either the column type or null.

columns() public ¶

columns( )

Get the column names in the table.

Returns
string[]
Implementation of
Cake\Datasource\SchemaInterface::columns()

constraint() public deprecated ¶

constraint( string $name )

Read information about a constraint based on name.

Deprecated
3.5.0 Use getConstraint() instead.
Parameters
string $name
The name of the constraint.
Returns
array|null
Array of constraint data, or null

constraints() public ¶

constraints( )

Get the names of all the constraints in the table.

Returns
string[]
Implementation of
Cake\Database\Schema\TableSchemaInterface::constraints()

createSql() public ¶

createSql( Cake\Database\Connection $connection )

Generate the SQL to create the Table.

Parameters
Cake\Database\Connection $connection
The connection to generate SQL for.
Returns
array

List of SQL statements to create the table and the required indexes.


Implementation of
Cake\Database\Schema\SqlGeneratorInterface::createSql()

defaultValues() public ¶

defaultValues( )

Get a hash of columns and their default values.

Returns
array
Implementation of
Cake\Datasource\SchemaInterface::defaultValues()

dropConstraint() public ¶

dropConstraint( string $name )

Remove a constraint.

Parameters
string $name
Name of the constraint to remove
Returns

$this
Implementation of
Cake\Database\Schema\TableSchemaInterface::dropConstraint()

dropConstraintSql() public ¶

dropConstraintSql( Cake\Database\Connection $connection )

Generate the SQL statements to drop the constraints to the table

Parameters
Cake\Database\Connection $connection
The connection to generate SQL for.
Returns
array
SQL to drop a table.
Implementation of
Cake\Database\Schema\SqlGeneratorInterface::dropConstraintSql()

dropSql() public ¶

dropSql( Cake\Database\Connection $connection )

Generate the SQL to drop a table.

Parameters
Cake\Database\Connection $connection
The connection to generate SQL for.
Returns
array
SQL to drop a table.
Implementation of
Cake\Database\Schema\SqlGeneratorInterface::dropSql()

getColumn() public ¶

getColumn( string $name )

Get column data in the table.

Parameters
string $name
The column name.
Returns
array|null
Column data or null.
Implementation of
Cake\Datasource\SchemaInterface::getColumn()

getColumnType() public ¶

getColumnType( string $name )

Returns column type or null if a column does not exist.

Parameters
string $name
The column to get the type of.
Returns
string|null
Implementation of
Cake\Datasource\SchemaInterface::getColumnType()

getConstraint() public ¶

getConstraint( string $name )

Read information about a constraint based on name.

Parameters
string $name
The name of the constraint.
Returns
array|null
Array of constraint data, or null
Implementation of
Cake\Database\Schema\TableSchemaInterface::getConstraint()

getIndex() public ¶

getIndex( string $name )

Read information about an index based on name.

Parameters
string $name
The name of the index.
Returns
array|null
Array of index data, or null
Implementation of
Cake\Database\Schema\TableSchemaInterface::getIndex()

getOptions() public ¶

getOptions( )

Gets the options for a table.

Returns
array
An array of options.
Implementation of
Cake\Datasource\SchemaInterface::getOptions()

hasAutoincrement() public ¶

hasAutoincrement( )

Check whether or not a table has an autoIncrement column defined.

Returns
boolean
Implementation of
Cake\Database\Schema\TableSchemaInterface::hasAutoincrement()

hasColumn() public ¶

hasColumn( string $name )

Returns true if a column exists in the schema.

Parameters
string $name
Column name.
Returns
boolean
Implementation of
Cake\Datasource\SchemaInterface::hasColumn()

index() public deprecated ¶

index( string $name )

Read information about an index based on name.

Deprecated
3.5.0 Use getIndex() instead.
Parameters
string $name
The name of the index.
Returns
array|null
Array of index data, or null

indexes() public ¶

indexes( )

Get the names of all the indexes in the table.

Returns
string[]
Implementation of
Cake\Database\Schema\TableSchemaInterface::indexes()

isNullable() public ¶

isNullable( string $name )

Check whether or not a field is nullable

Parameters
string $name
The column to get the type of.
Returns
boolean
Whether or not the field is nullable.
Implementation of
Cake\Datasource\SchemaInterface::isNullable()

isTemporary() public ¶

isTemporary( )

Gets whether the table is temporary in the database.

Returns
boolean
The current temporary setting.
Implementation of
Cake\Database\Schema\TableSchemaInterface::isTemporary()

name() public ¶

name( )

Get the name of the table.

Returns
string
Implementation of
Cake\Datasource\SchemaInterface::name()

options() public deprecated ¶

options( array|null $options = null )

Get/set the options for a table.

Table options allow you to set platform specific table level options. For example the engine type in MySQL.

Deprecated
3.4.0 Use setOptions()/getOptions() instead.
Parameters
array|null $options optional null
The options to set, or null to read options.
Returns

$this|array Either the TableSchema instance, or an array of options when reading.

primaryKey() public ¶

primaryKey( )

Get the column(s) used for the primary key.

Returns
array

Column name(s) for the primary key. An empty list will be returned when the table has no primary key.


Implementation of
Cake\Database\Schema\TableSchemaInterface::primaryKey()

removeColumn() public ¶

removeColumn( string $name )

Remove a column from the table schema.

Parameters
string $name
The name of the column
Returns

$this
Implementation of
Cake\Datasource\SchemaInterface::removeColumn()

setColumnType() public ¶

setColumnType( string $name , string $type )

Sets the type of a column.

Parameters
string $name
The column to set the type of.
string $type
The type to set the column to.
Returns

$this
Implementation of
Cake\Datasource\SchemaInterface::setColumnType()

setOptions() public ¶

setOptions( array $options )

Sets the options for a table.

Parameters
array $options
The options to set, or null to read options.
Returns

$this
Implementation of
Cake\Datasource\SchemaInterface::setOptions()

setTemporary() public ¶

setTemporary( boolean $temporary )

Sets whether the table is temporary in the database.

Parameters
boolean $temporary
Whether or not the table is to be temporary.
Returns

$this
Implementation of
Cake\Database\Schema\TableSchemaInterface::setTemporary()

temporary() public deprecated ¶

temporary( boolean|null $temporary = null )

Get/Set whether the table is temporary in the database

Deprecated
3.4.0 Use setTemporary()/isTemporary() instead.
Parameters
boolean|null $temporary optional null
whether or not the table is to be temporary
Returns

$this|bool Either the TableSchema instance, the current temporary setting

truncateSql() public ¶

truncateSql( Cake\Database\Connection $connection )

Generate the SQL statements to truncate a table

Parameters
Cake\Database\Connection $connection
The connection to generate SQL for.
Returns
array
SQL to truncate a table.
Implementation of
Cake\Database\Schema\SqlGeneratorInterface::truncateSql()

typeMap() public ¶

typeMap( )

Returns an array where the keys are the column names in the schema and the values the database type they have.

Returns
array
Implementation of
Cake\Datasource\SchemaInterface::typeMap()

Properties detail

$_columnExtras ¶

protected static array

Additional type specific properties.

[
    'string' => [
        'fixed' => null,
        'collate' => null,
    ],
    'text' => [
        'collate' => null,
    ],
    'tinyinteger' => [
        'unsigned' => null,
    ],
    'smallinteger' => [
        'unsigned' => null,
    ],
    'integer' => [
        'unsigned' => null,
        'autoIncrement' => null,
    ],
    'biginteger' => [
        'unsigned' => null,
        'autoIncrement' => null,
    ],
    'decimal' => [
        'unsigned' => null,
    ],
    'float' => [
        'unsigned' => null,
    ],
]

$_columnKeys ¶

protected static array

The valid keys that can be used in a column definition.

[
    'type' => null,
    'baseType' => null,
    'length' => null,
    'precision' => null,
    'null' => null,
    'default' => null,
    'comment' => null,
]

$_columns ¶

protected array

Columns in the table.

[]

$_constraints ¶

protected array

Constraints in the table.

[]

$_indexKeys ¶

protected static array

The valid keys that can be used in an index definition.

[
    'type' => null,
    'columns' => [],
    'length' => [],
    'references' => [],
    'update' => 'restrict',
    'delete' => 'restrict',
]

$_indexes ¶

protected array

Indexes in the table.

[]

$_options ¶

protected array

Options for the table.

[]

$_table ¶

protected string

The name of the table

$_temporary ¶

protected boolean

Whether or not the table is temporary

false

$_typeMap ¶

protected array

A map with columns to types

[]

$_validConstraintTypes ¶

protected static array

Names of the valid constraint types.

[
    self::CONSTRAINT_PRIMARY,
    self::CONSTRAINT_UNIQUE,
    self::CONSTRAINT_FOREIGN,
]

$_validForeignKeyActions ¶

protected static array

Names of the valid foreign key actions.

[
    self::ACTION_CASCADE,
    self::ACTION_SET_NULL,
    self::ACTION_SET_DEFAULT,
    self::ACTION_NO_ACTION,
    self::ACTION_RESTRICT,
]

$_validIndexTypes ¶

protected static array

Names of the valid index types.

[
    self::INDEX_INDEX,
    self::INDEX_FULLTEXT,
]

$columnLengths ¶

public static array

Valid column length that can be used with text type columns

[
    'tiny' => self::LENGTH_TINY,
    'medium' => self::LENGTH_MEDIUM,
    'long' => self::LENGTH_LONG
]
Follow @CakePHP
#IRC
OpenHub
Rackspace
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Logos & Trademarks
  • 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

Generated using CakePHP API Docs