function BaseFieldDefinition::getSchema

Same name in other branches
  1. 9 core/lib/Drupal/Core/Field/BaseFieldDefinition.php \Drupal\Core\Field\BaseFieldDefinition::getSchema()
  2. 8.9.x core/lib/Drupal/Core/Field/BaseFieldDefinition.php \Drupal\Core\Field\BaseFieldDefinition::getSchema()
  3. 11.x core/lib/Drupal/Core/Field/BaseFieldDefinition.php \Drupal\Core\Field\BaseFieldDefinition::getSchema()

Overrides FieldStorageDefinitionInterface::getSchema

1 call to BaseFieldDefinition::getSchema()
BaseFieldDefinition::getColumns in core/lib/Drupal/Core/Field/BaseFieldDefinition.php
Returns the field columns, as defined in the field schema.

File

core/lib/Drupal/Core/Field/BaseFieldDefinition.php, line 663

Class

BaseFieldDefinition
A class for defining entity fields.

Namespace

Drupal\Core\Field

Code

public function getSchema() {
    if (!isset($this->schema)) {
        // Get the schema from the field item class.
        $definition = \Drupal::service('plugin.manager.field.field_type')->getDefinition($this->getType());
        $class = $definition['class'];
        $schema = $class::schema($this);
        // Fill in default values.
        $schema += [
            'columns' => [],
            'unique keys' => [],
            'indexes' => [],
            'foreign keys' => [],
        ];
        // Merge custom indexes with those specified by the field type. Custom
        // indexes prevail.
        $schema['indexes'] = $this->indexes + $schema['indexes'];
        $this->schema = $schema;
    }
    return $this->schema;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.