diff -u b/core/modules/views/src/Plugin/views/field/Field.php b/core/modules/views/src/Plugin/views/field/Field.php --- b/core/modules/views/src/Plugin/views/field/Field.php +++ b/core/modules/views/src/Plugin/views/field/Field.php @@ -977,6 +977,7 @@ * {@inheritdoc} */ public function getValue(ResultRow $values, $field = NULL) { + $entity = $this->getEntity($values); $langcode = $this->getFieldLangcode($entity, $values); $entity = $entity->getTranslation($langcode); reverted: --- b/core/modules/views/src/Plugin/views/join/FieldOrLanguageJoin.php +++ /dev/null @@ -1,59 +0,0 @@ -extra)) { - $extras = array(); - foreach ($this->extra as $extra) { - $extras[] = $this->buildExtra($extra, $arguments, $table, $select_query, $left_table); - } - - if ($extras) { - - // Remove and store the langcode OR bundle join condition extra. - $language_bundle_conditions = []; - foreach ($extras as $key => &$extra) { - if (strpos($extra, '.langcode') !== FALSE || strpos($extra, '.bundle') !== FALSE ) { - $language_bundle_conditions[] = $extra; - unset($extras[$key]); - } - } - - if (count($extras) == 1) { - $condition .= ' AND ' . array_shift($extras); - } - else { - $condition .= ' AND (' . implode(' ' . $this->extraOperator . ' ', $extras) . ')'; - } - - // Tack on the langcode OR bundle join condition extra. - if (!empty($language_bundle_conditions)) { - $condition .= ' AND (' . implode(' OR ', $language_bundle_conditions) . ')'; - } - } - } - elseif ($this->extra && is_string($this->extra)) { - $condition .= " AND ($this->extra)"; - } - } -}