Fieldtype::getDatabaseSchema()
Get the database schema for this field
Should return an array like in the example below, indexed by field name with type details as the value (as it would be in an SQL statement).
Indexes are passed through with a
keysarray. Note thatpages_idas a field and primary key may be retrieved by starting with the parent schema return from the built-in getDatabaseSchema() method.At minimum, each Fieldtype must add a
datafield as well as an index for it.If you want a PHP
NULLvalue to become a NULL in the database, your column definition must specify:DEFAULT NULL.
Example
array(
'data' => 'mediumtext NOT NULL',
'keys' => array(
'primary' => 'PRIMARY KEY (`pages_id`)',
'FULLTEXT KEY data (data)',
),
'xtra' => array(
// optional extras, MySQL defaults will be used if omitted
'append' =>
'ENGINE={$this->config->dbEngine} ' .
'DEFAULT CHARSET={$this->config->dbCharset}'
// true (default) if this schema provides all storage for this fieldtype.
// false if other storage is involved with this fieldtype, beyond this schema
// (like repeaters, PageTable, etc.)
'all' => true,
)
);Usage
$array = $fieldtype->getDatabaseSchema(Field $field);Arguments
| Name | Type(s) | Description |
|---|---|---|
$field | Field | In case it's needed for the schema, but typically isn't. |
Return value
array
Fieldtype methods and properties
API reference based on ProcessWire core version 3.0.253