entity_get_form_display($entity_type, $bundle, $form_mode)
Returns the entity form display associated with a bundle and form mode.
The function reads the entity form display object from the current configuration, or returns a ready-to-use empty one if no configuration entry exists yet for this bundle and form mode. This streamlines manipulation of entity form displays by always returning a consistent object that reflects the current state of the configuration.
Example usage:
- Set the 'body' field to be displayed with the 'text_textarea_with_summary' widget and the 'field_image' field to be hidden on article nodes in the 'default' form mode.
entity_get_form_display('node', 'article', 'default') ->setComponent('body', array( 'type' => 'text_textarea_with_summary', 'weight' => 1, )) ->setComponent('field_image', array( 'type' => 'hidden', )) ->save();
\Drupal::entityTypeManager() ->getStorage('entity_form_display') ->load($entity_type . '.' . $bundle . '.' . $form_mode);
When the entity form display is not available in configuration, you can create a new EntityFormDisplay object using:
$values = ('entity_form_display', array( 'targetEntityType' => $entity_type, 'bundle' => $bundle, 'mode' => $form_mode, 'status' => TRUE, )); \Drupal::entityTypeManager() ->getStorage('entity_form_display') ->create($values);
Parameters
string $entity_type: The entity type.
string $bundle: The bundle.
string $form_mode: The form mode.
Return value
\Drupal\Core\Entity\Display\EntityFormDisplayInterface The entity form display associated with the given form mode.
Deprecated
as of Drupal 8.0.x, will be removed before Drupal 9.0.0. If the entity form display is available in configuration use:
See also
\Drupal\Core\Entity\EntityStorageInterface::create()
\Drupal\Core\Entity\EntityStorageInterface::load()
File
- core/includes/entity.inc, line 556
- Entity API for handling entities like nodes or users.
Code
function entity_get_form_display($entity_type, $bundle, $form_mode) { // Try loading the entity from configuration. $entity_form_display = EntityFormDisplay::load($entity_type . '.' . $bundle . '.' . $form_mode); // If not found, create a fresh entity object. We do not preemptively create // new entity form display configuration entries for each existing entity type // and bundle whenever a new form mode becomes available. Instead, // configuration entries are only created when an entity form display is // explicitly configured and saved. if (!$entity_form_display) { $entity_form_display = EntityFormDisplay::create(array( 'targetEntityType' => $entity_type, 'bundle' => $bundle, 'mode' => $form_mode, 'status' => TRUE, )); } return $entity_form_display; }
Please login to continue.