8.2.x entity.inc entity_get_display($entity_type, $bundle, $view_mode)
8.0.x entity.inc entity_get_display($entity_type, $bundle, $view_mode)
8.1.x entity.inc entity_get_display($entity_type, $bundle, $view_mode)
8.3.x entity.inc entity_get_display($entity_type, $bundle, $view_mode)

Returns the entity view display associated with a bundle and view mode.

Use this function when assigning suggested display options for a component in a given view mode. Note that they will only be actually used at render time if the view mode itself is configured to use dedicated display settings for the bundle; if not, the 'default' display is used instead.

The function reads the entity view display from the current configuration, or returns a ready-to-use empty one if configuration entry exists yet for this bundle and view mode. This streamlines manipulation of display objects by always returning a consistent object that reflects the current state of the configuration.

Example usage:

  • Set the 'body' field to be displayed and the 'field_image' field to be hidden on article nodes in the 'default' display.
entity_get_display('node', 'article', 'default')
  ->setComponent('body', array(
    'type' => 'text_summary_or_trimmed',
    'settings' => array('trim_length' => '200')
    'weight' => 1,


string $entity_type: The entity type.

string $bundle: The bundle.

string $view_mode: The view mode, or 'default' to retrieve the 'default' display object for this bundle.

Return value

\Drupal\Core\Entity\Display\EntityViewDisplayInterface The entity view display associated with the view mode.


as of Drupal 8.0.x, will be removed before Drupal 9.0.0. If the display is available in configuration use:

    ->load($entity_type . '.' . $bundle . '.' . $view_mode);

When the display is not available in configuration, you can create a new EntityViewDisplay object using:

  $values = array(
    'targetEntityType' => $entity_type,
    'bundle' => $bundle,
    'mode' => $view_mode,
    'status' => TRUE,

See also



99 calls to entity_get_display()
block_content_add_body_field in core/modules/block_content/block_content.module
Adds the default body field to a custom block type.
BooleanFieldTest::testBooleanField in core/modules/field/src/Tests/Boolean/BooleanFieldTest.php
Tests boolean field.
BooleanFieldTest::testFormAccess in core/modules/field/src/Tests/Boolean/BooleanFieldTest.php
Test field access.
BooleanFormatterSettingsTest::setUp in core/modules/field/src/Tests/Boolean/BooleanFormatterSettingsTest.php
Sets up a Drupal site for running functional and integration tests.
BooleanFormatterTest::setUp in core/modules/field/tests/src/Kernel/Boolean/BooleanFormatterTest.php

... See full list


core/includes/entity.inc, line 476
Entity API for handling entities like nodes or users.


function entity_get_display($entity_type, $bundle, $view_mode) {
  // Try loading the display from configuration.
  $display = EntityViewDisplay::load($entity_type . '.' . $bundle . '.' . $view_mode);

  // If not found, create a fresh display object. We do not preemptively create
  // new entity_view_display configuration entries for each existing entity type
  // and bundle whenever a new view mode becomes available. Instead,
  // configuration entries are only created when a display object is explicitly
  // configured and saved.
  if (!$display) {
    $display = EntityViewDisplay::create(array(
      'targetEntityType' => $entity_type,
      'bundle' => $bundle,
      'mode' => $view_mode,
      'status' => TRUE,

  return $display;