You are here

public function TestFieldPrepareViewFormatter::prepareView in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php \Drupal\field_test\Plugin\Field\FieldFormatter\TestFieldPrepareViewFormatter::prepareView()
  2. 10 core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php \Drupal\field_test\Plugin\Field\FieldFormatter\TestFieldPrepareViewFormatter::prepareView()

Allows formatters to load information for field values being displayed.

This should be used when a formatter needs to load additional information from the database in order to render a field, for example a reference field that displays properties of the referenced entities such as name or type.

This method operates on multiple entities. The $entities_items parameter is an array keyed by entity ID. For performance reasons, information for all involved entities should be loaded in a single query where possible.

Changes or additions to field values are done by directly altering the items.

Parameters

\Drupal\Core\Field\FieldItemListInterface[] $entities_items: An array with the field values from the multiple entities being rendered.

Overrides FormatterBase::prepareView

File

core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php, line 59

Class

TestFieldPrepareViewFormatter
Plugin implementation of the 'field_test_with_prepare_view' formatter.

Namespace

Drupal\field_test\Plugin\Field\FieldFormatter

Code

public function prepareView(array $entities_items) {
  foreach ($entities_items as $items) {
    foreach ($items as $item) {

      // Don't add anything on empty values.
      if (!$item
        ->isEmpty()) {
        $item->additional_formatter_value = $item->value + 1;
      }
    }
  }
}