diff --git a/core/modules/views/src/Plugin/views/field/EntityField.php b/core/modules/views/src/Plugin/views/field/EntityField.php index 7d38ab2ae8..d697d52031 100644 --- a/core/modules/views/src/Plugin/views/field/EntityField.php +++ b/core/modules/views/src/Plugin/views/field/EntityField.php @@ -860,7 +860,7 @@ public function getItems(ResultRow $values) { } if ($this->options['field_api_classes']) { - return [['rendered' => $this->renderer->render($build_list)]]; + return [['rendered' => $build_list]]; } // Render using the formatted data itself. diff --git a/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php b/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php index 15748947e8..27428107d7 100644 --- a/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php +++ b/core/modules/views/tests/src/Kernel/Handler/FieldFieldTest.php @@ -339,6 +339,27 @@ public function testFieldAliasRender() { } } + /** + * Tests the result of a view field with field_api_classes enabled. + */ + public function testFieldApiClassesRender() { + /** @var \Drupal\Core\Render\RendererInterface $renderer */ + $renderer = $this->container->get('renderer'); + $executable = Views::getView('test_field_field_test'); + $executable->initHandlers(); + + // Enable field_api_classes for the id field. + $id_field = $executable->field['id']; + $id_field->options['field_api_classes'] = TRUE; + + // Test that the ID field renders with multiple divs from field template. + $output = $executable->preview(); + $output = $renderer->renderRoot($output); + $this->setRawContent($output); + $field_values = $this->xpath('//div[contains(@class, "views-field-id")]/span[contains(@class, :class)]/div', [':class' => 'field-content']); + $this->assertNotEmpty($field_values); + } + /** * Tests the result of a view with complex field configuration. *