On this page
Class Table
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 Table instances can be added to Schema\Collection objects. They can also be converted into SQL using the createSql(), dropSql() and truncateSql() methods.
Constants summary
string'cascade'string'noAction'string'restrict'string'setDefault'string'setNull'string'foreign'string'primary'string'unique'string'fulltext'string'index'integer4294967295integer16777215integer255
Properties summary
-
Additional type specific properties.
array -
arrayThe valid keys that can be used in a column definition.
-
$_columnsprotectedColumns in the table.array -
$_constraintsprotectedConstraints in the table.array -
arrayThe valid keys that can be used in an index definition.
-
$_indexesprotectedIndexes in the table.array -
$_optionsprotectedOptions for the table.array -
$_tableprotectedThe name of the tablestring -
$_temporaryprotectedWhether or not the table is temporaryboolean -
$_typeMapprotectedA map with columns to typesarray -
Names of the valid constraint types.
array -
Names of the valid foreign key actions.
array -
Names of the valid index types.
array -
Valid column length that can be used with text type columns
array
Method Summary
-
__construct() publicConstructor.
-
_checkForeignKey() protectedHelper method to check/validate foreign keys.
-
addColumn() publicAdd a column to the table.
-
addConstraint() publicAdd a constraint.
-
addConstraintSql() publicGenerate the SQL statements to add the constraints to the table
-
addIndex() publicAdd 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() publicGet column data in the table.
-
columnType() public
Sets the type of a column, or returns its current type if none is passed.
-
columns() publicGet the column names in the table.
-
constraint() publicRead information about a constraint based on name.
-
constraints() publicGet the names of all the constraints in the table.
-
createSql() publicGenerate the SQL to create the Table.
-
defaultValues() publicGet a hash of columns and their default values.
-
dropConstraint() publicRemove a constraint.
-
dropConstraintSql() publicGenerate the SQL statements to drop the constraints to the table
-
dropSql() publicGenerate the SQL to drop a table.
-
hasAutoincrement() publicCheck whether or not a table has an autoIncrement column defined.
-
index() publicRead information about an index based on name.
-
indexes() publicGet the names of all the indexes in the table.
-
isNullable() publicCheck whether or not a field is nullable
-
name() publicGet the name of the table.
-
options() publicGet/set the options for a table.
-
primaryKey() publicGet the column(s) used for the primary key.
-
temporary() publicGet/Set whether the table is temporary in the database
-
truncateSql() publicGenerate 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()source public
__construct( string $table , array $columns [] )
Constructor.
Parameters
-
string
$table - The table name.
-
array
$columnsoptional [] - The list of columns for the schema.
_checkForeignKey()source protected
_checkForeignKey( array $attrs )
Helper method to check/validate foreign keys.
Parameters
-
array
$attrs - Attributes to set.
Returns
arrayThrows
Cake\Database\ExceptionWhen foreign key definition is not valid.
addColumn()source public
addColumn( string $name , array $attrs )
Add a column to the table.
Attributes
Columns can have several attributes:
typeThe type of the column. This should be one of CakePHP's abstract types.lengthThe length of the column.precisionThe number of decimal places to store for float and decimal types.defaultThe default value of the column.nullWhether or not the column can hold nulls.fixedWhether or not the column is a fixed length column. This is only present/valid with string columns.unsignedWhether or not the column is an unsigned column. This is only present/valid for integer, decimal, float columns.
In addition to the above keys, the following keys are implemented in some database dialects, but not all:
commentThe comment for the column.
Parameters
-
string
$name - The name of the column
-
array
$attrs - The attributes for the column.
Returns
$this
addConstraint()source public
addConstraint( string $name , array $attrs )
Add a constraint.
Used to add constraints to a table. For example primary keys, unique keys and foreign keys.
Attributes
typeThe type of constraint being added.columnsThe columns in the index.referencesThe table, column a foreign key references.updateThe behavior on update. Options are 'restrict', 'setNull', 'cascade', 'noAction'.deleteThe behavior on delete. Options are 'restrict', 'setNull', 'cascade', 'noAction'.
The default for 'update' & 'delete' is 'cascade'.
Parameters
-
string
$name - The name of the constraint.
-
array
$attrs - The attributes for the constraint.
Returns
$this
Throws
Cake\Database\ExceptionaddConstraintSql()source public
addConstraintSql( Cake\Datasource\ConnectionInterface $connection )
Generate the SQL statements to add the constraints to the table
Parameters
Cake\Datasource\ConnectionInterface$connection- The connection to generate SQL for.
Returns
arraySQL to drop a table.
addIndex()source public
addIndex( string $name , array $attrs )
Add an index.
Used to add indexes, and full text indexes in platforms that support them.
Attributes
typeThe type of index being added.columnsThe columns in the index.
Parameters
-
string
$name - The name of the index.
-
array
$attrs - The attributes for the index.
Returns
$this
Throws
Cake\Database\ExceptionbaseColumnType()source 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
stringThe base type name
column()source public
column( string $name )
Get column data in the table.
Parameters
-
string
$name - The column name.
Returns
array|nullColumn data or null.
columnType()source public
columnType( string $name , string|null $type null )
Sets the type of a column, or returns its current type if none is passed.
Parameters
-
string
$name - The column to get the type of.
-
string|null
$typeoptional null - The type to set the column to.
Returns
string|nullEither the column type or null.
constraint()source public
constraint( string $name )
Read information about a constraint based on name.
Parameters
-
string
$name - The name of the constraint.
Returns
array|nullArray of constraint data, or null
constraints()source public
constraints( )
Get the names of all the constraints in the table.
Returns
arraycreateSql()source public
createSql( Cake\Datasource\ConnectionInterface $connection )
Generate the SQL to create the Table.
Uses the connection to access the schema dialect to generate platform specific SQL.
Parameters
Cake\Datasource\ConnectionInterface$connection- The connection to generate SQL for
Returns
arrayList of SQL statements to create the table and the required indexes.
defaultValues()source public
defaultValues( )
Get a hash of columns and their default values.
Returns
arraydropConstraint()source public
dropConstraint( string $name )
Remove a constraint.
Parameters
-
string
$name - Name of the constraint to remove
dropConstraintSql()source public
dropConstraintSql( Cake\Datasource\ConnectionInterface $connection )
Generate the SQL statements to drop the constraints to the table
Parameters
Cake\Datasource\ConnectionInterface$connection- The connection to generate SQL for.
Returns
arraySQL to drop a table.
dropSql()source public
dropSql( Cake\Datasource\ConnectionInterface $connection )
Generate the SQL to drop a table.
Uses the connection to access the schema dialect to generate platform specific SQL.
Parameters
Cake\Datasource\ConnectionInterface$connection- The connection to generate SQL for.
Returns
arraySQL to drop a table.
hasAutoincrement()source public
hasAutoincrement( )
Check whether or not a table has an autoIncrement column defined.
Returns
booleanindex()source public
index( string $name )
Read information about an index based on name.
Parameters
-
string
$name - The name of the index.
Returns
array|nullArray of index data, or null
isNullable()source public
isNullable( string $name )
Check whether or not a field is nullable
Missing columns are nullable.
Parameters
-
string
$name - The column to get the type of.
Returns
booleanWhether or not the field is nullable.
options()source public
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.
Parameters
-
array|null
$optionsoptional null - The options to set, or null to read options.
Returns
$this|array Either the table instance, or an array of options when reading.
primaryKey()source public
primaryKey( )
Get the column(s) used for the primary key.
Returns
arrayColumn name(s) for the primary key. An empty list will be returned when the table has no primary key.
temporary()source public
temporary( boolean|null $set null )
Get/Set whether the table is temporary in the database
Parameters
-
boolean|null
$setoptional null - whether or not the table is to be temporary
Returns
$this|bool Either the table instance, the current temporary setting
truncateSql()source public
truncateSql( Cake\Datasource\ConnectionInterface $connection )
Generate the SQL statements to truncate a table
Parameters
Cake\Datasource\ConnectionInterface$connection- The connection to generate SQL for.
Returns
arraySQL to truncate a table.
typeMap()source public
typeMap( )
Returns an array where the keys are the column names in the schema and the values the database type they have.
Returns
arrayProperties detail
$_columnExtrassource
protected static array
Additional type specific properties.
[
'string' => [
'fixed' => null,
'collate' => null,
],
'text' => [
'collate' => null,
],
'integer' => [
'unsigned' => null,
'autoIncrement' => null,
],
'biginteger' => [
'unsigned' => null,
'autoIncrement' => null,
],
'decimal' => [
'unsigned' => null,
],
'float' => [
'unsigned' => null,
],
]
$_columnKeyssource
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,
]
$_indexKeyssource
protected static array
The valid keys that can be used in an index definition.
[
'type' => null,
'columns' => [],
'length' => [],
'references' => [],
'update' => 'restrict',
'delete' => 'restrict',
]
$_validConstraintTypessource
protected static array
Names of the valid constraint types.
[
self::CONSTRAINT_PRIMARY,
self::CONSTRAINT_UNIQUE,
self::CONSTRAINT_FOREIGN,
]
$_validForeignKeyActionssource
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,
]
$_validIndexTypessource
protected static array
Names of the valid index types.
[
self::INDEX_INDEX,
self::INDEX_FULLTEXT,
]
$columnLengthssource
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
]
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Database.Schema.Table.html