public function EntityDisplayRepository::getViewDisplay in Drupal 9
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Entity/EntityDisplayRepository.php \Drupal\Core\Entity\EntityDisplayRepository::getViewDisplay()
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.
\Drupal::service('entity_display.repository')
->getViewDisplay('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: (optional) The view mode. Defaults to self::DEFAULT_DISPLAY_MODE.
Return value
\Drupal\Core\Entity\Display\EntityViewDisplayInterface The entity view display associated with the view mode.
Overrides EntityDisplayRepositoryInterface::getViewDisplay
File
- core/
lib/ Drupal/ Core/ Entity/ EntityDisplayRepository.php, line 249
Class
- EntityDisplayRepository
- Provides a repository for entity display objects (view modes and form modes).
Namespace
Drupal\Core\EntityCode
public function getViewDisplay($entity_type, $bundle, $view_mode = self::DEFAULT_DISPLAY_MODE) {
$storage = $this->entityTypeManager
->getStorage('entity_view_display');
// Try loading the display from configuration; 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.
$entity_view_display = $storage
->load($entity_type . '.' . $bundle . '.' . $view_mode);
if (!$entity_view_display) {
$entity_view_display = $storage
->create([
'targetEntityType' => $entity_type,
'bundle' => $bundle,
'mode' => $view_mode,
'status' => TRUE,
]);
}
return $entity_view_display;
}