public static function LinkImageField::schema in Link Image Field 8
Returns the schema for the field.
This method is static because the field schema information is needed on creation of the field. FieldItemInterface objects instantiated at that time are not reliable as field settings might be missing.
Computed fields having no schema should return an empty array.
Parameters
\Drupal\Core\Field\FieldStorageDefinitionInterface $field_definition: The field definition.
Return value
array An empty array if there is no schema, or an associative array with the following key/value pairs:
- columns: An array of Schema API column specifications, keyed by column name. The columns need to be a subset of the properties defined in propertyDefinitions(). The 'not null' property is ignored if present, as it is determined automatically by the storage controller depending on the table layout and the property definitions. It is recommended to avoid having the column definitions depend on field settings when possible. No assumptions should be made on how storage engines internally use the original column name to structure their storage.
- unique keys: (optional) An array of Schema API unique key definitions. Only columns that appear in the 'columns' array are allowed.
- indexes: (optional) An array of Schema API index definitions. Only columns that appear in the 'columns' array are allowed. Those indexes will be used as default indexes. Field definitions can specify additional indexes or, at their own risk, modify the default indexes specified by the field-type module. Some storage engines might not support indexes.
- foreign keys: (optional) An array of Schema API foreign key definitions. Note, however, that the field data is not necessarily stored in SQL. Also, the possible usage is limited, as you cannot specify another field as related, only existing SQL tables, such as {taxonomy_term_data}.
Overrides ImageItem::schema
File
- lib/
Drupal/ linkimagefield/ Plugin/ Field/ FieldType/ LinkImageField.php, line 41
Class
- LinkImageField
- Plugin implementation of the 'LinkImageField' field type.
Namespace
Drupal\linkimagefield\Plugin\Field\FieldTypeCode
public static function schema(FieldDefinitionInterface $field_definition) {
return array(
'columns' => array(
'target_id' => array(
'description' => 'The ID of the file entity.',
'type' => 'int',
'not null' => FALSE,
'unsigned' => TRUE,
),
'alt' => array(
'description' => "Alternative image text, for the image's 'alt' attribute.",
'type' => 'varchar',
'length' => 128,
'not null' => FALSE,
),
'longdesc' => array(
'description' => "A link to a page with a long description of the image, for the image's 'londesc' attribute.",
'type' => 'varchar',
'length' => 128,
'not null' => FALSE,
),
'title' => array(
'description' => "Image title text, for the image's 'title' attribute.",
'type' => 'varchar',
'length' => 128,
'not null' => FALSE,
),
'url' => array(
'description' => "The URL used for the image link.",
'type' => 'varchar',
'length' => 128,
'not null' => FALSE,
),
'target' => array(
'description' => "The target type of the image link.",
'type' => 'varchar',
'length' => 128,
'not null' => FALSE,
),
'class' => array(
'description' => "For adding a class attribute to the anchor.",
'type' => 'varchar',
'length' => 128,
'not null' => FALSE,
),
'rel' => array(
'description' => "A relation tag for bots or lightboxes.",
'type' => 'varchar',
'length' => 128,
'not null' => FALSE,
),
'width' => array(
'description' => 'The width of the image in pixels.',
'type' => 'int',
'unsigned' => TRUE,
),
'height' => array(
'description' => 'The height of the image in pixels.',
'type' => 'int',
'unsigned' => TRUE,
),
),
'indexes' => array(
'target_id' => array(
'target_id',
),
),
'foreign keys' => array(
'target_id' => array(
'table' => 'file_managed',
'columns' => array(
'target_id' => 'fid',
),
),
),
);
}