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.
1 2 3 4 5 6 7 8 | entity_get_display( 'node' , 'article' , 'default' ) ->setComponent( 'body' , array ( 'type' => 'text_summary_or_trimmed' , 'settings' => array ( 'trim_length' => '200' ) 'weight' => 1, )) ->removeComponent( 'field_image' ) ->save(); |
Parameters
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.
Deprecated
as of Drupal 8.0.x, will be removed before Drupal 9.0.0. If the display is available in configuration use:
1 2 3 | \Drupal::entityTypeManager() ->getStorage( 'entity_view_display' ) ->load( $entity_type . '.' . $bundle . '.' . $view_mode ); |
When the display is not available in configuration, you can create a new EntityViewDisplay object using:
1 2 3 4 5 6 7 8 9 | $values = array ( 'targetEntityType' => $entity_type , 'bundle' => $bundle , 'mode' => $view_mode , 'status' => TRUE, ); \Drupal::entityTypeManager() ->getStorage( 'entity_view_display' ) ->create( $values ); |
See also
\Drupal\Core\Entity\EntityStorageInterface::create()
\Drupal\Core\Entity\EntityStorageInterface::load()
File
- core/includes/entity.inc, line 476
- Entity API for handling entities like nodes or users.
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 ; } |
Please login to continue.