diff --git a/core/modules/views/src/Plugin/views/field/Field.php b/core/modules/views/src/Plugin/views/field/Field.php index a8c5d3e..c161529 100644 --- a/core/modules/views/src/Plugin/views/field/Field.php +++ b/core/modules/views/src/Plugin/views/field/Field.php @@ -998,18 +998,28 @@ protected function getTableMapping() { * {@inheritdoc} */ public function getValue(ResultRow $values, $field = NULL) { + // Get the entity. + $entity = $this->getEntity($values); /** @var \Drupal\Core\Field\FieldItemListInterface $field_item_list */ - $field_item_list = $this->getEntity($values)->{$this->definition['field_name']}; - $field_item_definition = $field_item_list->getFieldDefinition(); + $field_item_list = isset($entity->{$this->definition['field_name']}) ? $entity->{$this->definition['field_name']} : NULL; - if ($field_item_definition->getFieldStorageDefinition()->getCardinality() == 1) { - return $field ? $field_item_list->$field : $field_item_list->value; - } + // Make sure the field exists. + if (!$field_item_list) { + // There isn't anything we can do without a valid field. + return NULL; + } else { + $values = []; + + $field_item_definition = $field_item_list->getFieldDefinition(); - $values = []; - foreach ($field_item_list as $field_item) { - $values[] = $field ? $field_item->$field : $field_item->value; + if ($field_item_definition->getFieldStorageDefinition()->getCardinality() == 1) { + return $field ? $field_item_list->$field : $field_item_list->value; + } + foreach ($field_item_list as $field_item) { + $values[] = $field ? $field_item->$field : $field_item->value; + } } + return $values; }