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:
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);
string $entity_type: The entity type.
string $bundle: The bundle.
string $form_mode: The form mode.
\Drupal\Core\Entity\Display\EntityFormDisplayInterface The entity form display associated with the given form mode.
as of Drupal 8.0.x, will be removed before Drupal 9.0.0. If the entity form display is available in configuration use:
\Drupal\Core\Entity\EntityStorageInterface::create()
\Drupal\Core\Entity\EntityStorageInterface::load()
function entity_get_form_display($entity_type, $bundle, $form_mode) { // Try loading the entity from configuration. $entity_form_display = entity_load('entity_form_display', $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; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!includes!entity.inc/function/entity_get_form_display/8.1.x