\Cake\DatasourceSchemaInterface

An interface used by TableSchema objects.

Summary

Methods
Constants
name()
addColumn()
getColumn()
hasColumn()
removeColumn()
columns()
getColumnType()
setColumnType()
baseColumnType()
isNullable()
typeMap()
defaultValues()
setOptions()
getOptions()
No constants found
No protected methods found
N/A
No private methods found
N/A

Methods

name()

name() : string

Get the name of the table.

Returns

string

addColumn()

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

Add a column to the table.

Attributes

Columns can have several attributes:

  • type The type of the column. This should be one of CakePHP's abstract types.
  • length The length of the column.
  • precision The number of decimal places to store for float and decimal types.
  • default The default value of the column.
  • null Whether or not the column can hold nulls.
  • fixed Whether or not the column is a fixed length column. This is only present/valid with string columns.
  • unsigned Whether 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:

  • comment The comment for the column.

Parameters

string $name

The name of the column

array|string $attrs

The attributes for the column.

Returns

$this

getColumn()

getColumn(string  $name) : array|null

Get column data in the table.

Parameters

string $name

The column name.

Returns

array|null —

Column data or null.

hasColumn()

hasColumn(string  $name) : boolean

Returns true if a column exists in the schema.

Parameters

string $name

Column name.

Returns

boolean

removeColumn()

removeColumn(string  $name) : $this

Remove a column from the table schema.

If the column is not defined in the table, no error will be raised.

Parameters

string $name

The name of the column

Returns

$this

columns()

columns() : array<mixed,string>

Get the column names in the table.

Returns

array<mixed,string>

getColumnType()

getColumnType(string  $name) : string|null

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

Parameters

string $name

The column to get the type of.

Returns

string|null

setColumnType()

setColumnType(string  $name, string  $type) : $this

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

baseColumnType()

baseColumnType(string  $column) : string|null

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

isNullable()

isNullable(string  $name) : boolean

Check whether or not a field is nullable

Missing columns are nullable.

Parameters

string $name

The column to get the type of.

Returns

boolean —

Whether or not the field is nullable.

typeMap()

typeMap() : array

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

Returns

array

defaultValues()

defaultValues() : array

Get a hash of columns and their default values.

Returns

array

setOptions()

setOptions(array  $options) : $this

Sets 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 $options

The options to set, or null to read options.

Returns

$this

getOptions()

getOptions() : array

Gets the options for a table.

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

Returns

array —

An array of options.