diff --git a/core/modules/views/src/FieldAPIHandlerTrait.php b/core/modules/views/src/FieldAPIHandlerTrait.php index c75c86cabd..7eab7ab7ad 100644 --- a/core/modules/views/src/FieldAPIHandlerTrait.php +++ b/core/modules/views/src/FieldAPIHandlerTrait.php @@ -56,21 +56,19 @@ protected function getFieldStorageDefinition() { } $entity_type_id = $this->definition['entity_type']; - $base_fields = $this->getEntityManager()->getBaseFieldDefinitions($entity_type_id); $field_storage_definitions = $this->getEntityManager()->getFieldStorageDefinitions($entity_type_id); - $field_storage = NULL; if (isset($this->definition['field_name']) && isset($field_storage_definitions[$this->definition['field_name']])) { - $this->fieldStorageDefinition = $field_storage_definitions[$this->definition['field_name']]; - } - elseif (isset($this->definition['field_name']) && isset($base_fields[$this->definition['field_name']])) { - // Add support for base field definitions which are compatible with - // storage definitions, for fields which are computed (such as - // moderation_state) and do not have storage. - $this->fieldStorageDefinition = $base_fields[$this->definition['field_name']]->getFieldStorageDefinition(); + return $field_storage_definitions[$this->definition['field_name']]; } - return $this->fieldStorageDefinition; + // Add support for base field definitions which are compatible with storage + // definitions, for fields which are computed (such as moderation_state) + // and do not have storage. + $base_fields = $this->getEntityManager()->getBaseFieldDefinitions($entity_type_id); + if (isset($this->definition['field_name']) && isset($base_fields[$this->definition['field_name']])) { + return $base_fields[$this->definition['field_name']]->getFieldStorageDefinition(); + } } /** diff --git a/core/modules/views/src/Plugin/views/field/EntityField.php b/core/modules/views/src/Plugin/views/field/EntityField.php index 6b259c2065..714401adac 100644 --- a/core/modules/views/src/Plugin/views/field/EntityField.php +++ b/core/modules/views/src/Plugin/views/field/EntityField.php @@ -327,26 +327,25 @@ protected function getFieldStorageDefinition() { } $entity_type_id = $this->definition['entity_type']; - $base_fields = $this->getEntityManager()->getBaseFieldDefinitions($entity_type_id); $field_storage_definitions = $this->getEntityManager()->getFieldStorageDefinitions($entity_type_id); - $field_storage = NULL; // @todo Unify 'entity field'/'field_name' instead of converting back and // forth. https://www.drupal.org/node/2410779 if (isset($this->definition['field_name']) && isset($field_storage_definitions[$this->definition['field_name']])) { - $this->fieldStorageDefinition = $field_storage_definitions[$this->definition['field_name']]; - } - elseif (isset($this->definition['entity field']) && isset($field_storage_definitions[$this->definition['entity field']])) { - $this->fieldStorageDefinition = $field_storage_definitions[$this->definition['entity field']]; + return $field_storage_definitions[$this->definition['field_name']]; } - elseif (isset($this->definition['field_name']) && isset($base_fields[$this->definition['field_name']])) { - // Add support for base field definitions which are compatible with - // storage definitions, for fields which are computed (such as - // moderation_state) and do not have storage. - $this->fieldStorageDefinition = $base_fields[$this->definition['field_name']]->getFieldStorageDefinition(); + + if (isset($this->definition['entity field']) && isset($field_storage_definitions[$this->definition['entity field']])) { + return $field_storage_definitions[$this->definition['entity field']]; } - return $this->fieldStorageDefinition; + // Add support for base field definitions which are compatible with storage + // definitions, for fields which are computed (such as moderation_state) + // and do not have storage. + $base_fields = $this->getEntityManager()->getBaseFieldDefinitions($entity_type_id); + if (isset($this->definition['field_name']) && isset($base_fields[$this->definition['field_name']])) { + return $base_fields[$this->definition['field_name']]->getFieldStorageDefinition(); + } } /**