interface TableMappingInterface (View source)

Provides a common interface for mapping field columns to SQL tables.

Warning: using methods provided here should be done only when writing code that is explicitly targeting a SQL-based entity storage. Typically this API is used by SQL storage classes, or other SQL-specific code like the Views integration code for the Entity SQL storage. Another example of legal usage of this API is when needing to write a query that \Drupal::entityQuery() does not support. Always retrieve entity identifiers and use them to load entities instead of accessing data stored in the database directly. Any other usage circumvents the entity system and is strongly discouraged, at least when writing contributed code.

Constants

DELTA

A property that represents delta used in entity query conditions.

Methods

string[]
getTableNames()

Gets a list of table names for this mapping.

string[]
getAllColumns(string $table_name)

Gets a list of all database columns for a given table.

string[]
getFieldNames(string $table_name)

Gets a list of names for entity fields stored in the specified table.

string[]
getColumnNames(string $field_name)

Gets a mapping of field columns to database columns for a given field.

string[]
getExtraColumns(string $table_name)

Gets a list of extra database columns, which store denormalized data.

array
getReservedColumns()

Gets the list of columns that can not be used as field type columns.

string
getFieldColumnName(FieldStorageDefinitionInterface $storage_definition, string $property_name)

Generates a column name for a field property.

string
getFieldTableName(string $field_name)

Gets the table name for a given column.

string[]
getAllFieldTableNames(string $field_name)

Gets all the table names in which an entity field is stored.

Details

string[] getTableNames()

Gets a list of table names for this mapping.

Return Value

string[]

An array of table names.

string[] getAllColumns(string $table_name)

Gets a list of all database columns for a given table.

Parameters

string $table_name

The name of the table to return the columns for.

Return Value

string[]

An array of database column names for this table. Both field columns and extra columns are returned.

string[] getFieldNames(string $table_name)

Gets a list of names for entity fields stored in the specified table.

The return list is contains the entity field names, not database field (i.e. column) names. To get the mapping of specific entity field to database columns use ::getColumnNames().

Parameters

string $table_name

The name of the table to return the field names for.

Return Value

string[]

An array of field names for the given table.

string[] getColumnNames(string $field_name)

Gets a mapping of field columns to database columns for a given field.

Parameters

string $field_name

The name of the entity field to return the column mapping for.

Return Value

string[]

The keys of this array are the keys of the array returned by FieldStorageDefinitionInterface::getColumns() while the respective values are the names of the database columns for this table mapping.

string[] getExtraColumns(string $table_name)

Gets a list of extra database columns, which store denormalized data.

These database columns do not belong to any entity fields. Any normalized data that is stored should be associated with an entity field.

Parameters

string $table_name

The name of the table to return the columns for.

Return Value

string[]

An array of column names for the given table.

array getReservedColumns()

Gets the list of columns that can not be used as field type columns.

Return Value

array

string getFieldColumnName(FieldStorageDefinitionInterface $storage_definition, string $property_name)

Generates a column name for a field property.

Parameters

FieldStorageDefinitionInterface $storage_definition

The field storage definition.

string $property_name

The name of the property.

Return Value

string

A string containing a generated column name for a field data table that is unique among all other fields.

string getFieldTableName(string $field_name)

Gets the table name for a given column.

Parameters

string $field_name

The name of the entity field to return the column mapping for.

Return Value

string

Table name for the given field.

Exceptions

SqlContentEntityStorageException

string[] getAllFieldTableNames(string $field_name)

Gets all the table names in which an entity field is stored.

The returned table names are ordered by the amount of data stored in each table. For example, a revisionable and translatable entity type which uses core's default table mapping strategy would return the table names for the entity ID field in the following order:

  • base table
  • data table
  • revision table
  • revision data table

Parameters

string $field_name

The name of the entity field to return the tables names for.

Return Value

string[]

An array of table names in which the given field is stored.

Exceptions

SqlContentEntityStorageException