FieldtypeMulti::getDatabaseSchema() method

Modify the default schema provided by Fieldtype to include a 'sort' field, and integrate that into the primary key.

  • 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 keys array. Note that pages_id as 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 data field as well as an index for it.

  • If you want a PHP NULL value 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 = $fieldtypeMulti->getDatabaseSchema(Field $field);

Arguments

NameType(s)Description
fieldField

In case it's needed for the schema, but typically isn't.

Return value

array


FieldtypeMulti methods and properties

API reference based on ProcessWire core version 3.0.236

Latest news

  • ProcessWire Weekly #547
    In the 547th issue of ProcessWire Weekly we're going to check out the latest core updates, introduce a couple of new modules, and more. Read on!
    Weekly.pw / 2 November 2024
  • Custom Fields Module
    This week we look at a new ProFields module named Custom Fields. This module provides a way to rapidly build out ProcessWire fields that contain any number of subfields/properties within them.
    Blog / 30 August 2024
  • Subscribe to weekly ProcessWire news

“The end client and designer love the ease at which they can update the website. Training beyond how to log in wasn’t even necessary since ProcessWire’s default interface is straightforward.” —Jonathan Lahijani