Join field table if necessary.
$field_name: Name of the field.
string
\Drupal\Core\Entity\Query\QueryException
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];
}