You are here

public function EntityViewBuilder::view in Drupal 8

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Entity/EntityViewBuilder.php \Drupal\Core\Entity\EntityViewBuilder::view()
  2. 10 core/lib/Drupal/Core/Entity/EntityViewBuilder.php \Drupal\Core\Entity\EntityViewBuilder::view()

Builds the render array for the provided entity.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity to render.

string $view_mode: (optional) The view mode that should be used to render the entity.

string $langcode: (optional) For which language the entity should be rendered, defaults to the current content language.

Return value

array A render array for the entity.

Throws

\InvalidArgumentException Can be thrown when the set of parameters is inconsistent, like when trying to view a Comment and passing a Node which is not the one the comment belongs to, or not passing one, and having the comment node not be available for loading.

Overrides EntityViewBuilderInterface::view

1 call to EntityViewBuilder::view()
MessageViewBuilder::view in core/modules/contact/src/MessageViewBuilder.php
Builds the render array for the provided entity.
4 methods override EntityViewBuilder::view()
BlockContentViewBuilder::view in core/modules/block_content/src/BlockContentViewBuilder.php
Builds the render array for the provided entity.
BlockViewBuilder::view in core/modules/block/src/BlockViewBuilder.php
Builds the render array for the provided entity.
EntityTestViewBuilderOverriddenView::view in core/modules/system/tests/modules/entity_test/src/EntityTestViewBuilderOverriddenView.php
Builds the render array for the provided entity.
MessageViewBuilder::view in core/modules/contact/src/MessageViewBuilder.php
Builds the render array for the provided entity.

File

core/lib/Drupal/Core/Entity/EntityViewBuilder.php, line 133

Class

EntityViewBuilder
Base class for entity view builders.

Namespace

Drupal\Core\Entity

Code

public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
  $build_list = $this
    ->viewMultiple([
    $entity,
  ], $view_mode, $langcode);

  // The default ::buildMultiple() #pre_render callback won't run, because we
  // extract a child element of the default renderable array. Thus we must
  // assign an alternative #pre_render callback that applies the necessary
  // transformations and then still calls ::buildMultiple().
  $build = $build_list[0];
  $build['#pre_render'][] = [
    $this,
    'build',
  ];
  return $build;
}