protected function Tables::ensureFieldTable

Join field table if necessary.

Parameters

$field_name: Name of the field.

Return value

string

Throws

\Drupal\Core\Entity\Query\QueryException

1 call to Tables::ensureFieldTable()
Tables::addField in drupal/core/modules/field_sql_storage/lib/Drupal/field_sql_storage/Entity/Tables.php

File

drupal/core/modules/field_sql_storage/lib/Drupal/field_sql_storage/Entity/Tables.php, line 242
Definition of Drupal\field_sql_storage\Entity\Tables.

Class

Tables
Adds tables and fields to the SQL entity query.

Namespace

Drupal\field_sql_storage\Entity

Code

protected function ensureFieldTable($index_prefix, &$field, $type, $langcode, $base_table, $entity_id_field, $field_id_field) {
  $field_name = $field['field_name'];
  if (!isset($this->fieldTables[$index_prefix . $field_name])) {
    $table = $this->sqlQuery
      ->getMetaData('age') == FIELD_LOAD_CURRENT ? _field_sql_storage_tablename($field) : _field_sql_storage_revision_tablename($field);
    if ($field['cardinality'] != 1) {
      $this->sqlQuery
        ->addMetaData('simple_query', FALSE);
    }
    $entity_type = $this->sqlQuery
      ->getMetaData('entity_type');
    $this->fieldTables[$index_prefix . $field_name] = $this
      ->addJoin($type, $table, "%alias.{$field_id_field} = {$base_table}.{$entity_id_field} AND %alias.entity_type = '{$entity_type}'", $langcode);
  }
  return $this->fieldTables[$index_prefix . $field_name];
}