public function EntityFieldManager::getFieldMapByFieldType

public EntityFieldManager::getFieldMapByFieldType($field_type)

Gets a lightweight map of fields across bundles filtered by field type.

Parameters

string $field_type: The field type to filter by.

Return value

array An array keyed by entity type. Each value is an array which keys are field names and value is an array with two entries:

  • type: The field type.
  • bundles: An associative array of the bundles in which the field appears, where the keys and values are both the bundle's machine name.

Overrides EntityFieldManagerInterface::getFieldMapByFieldType

File

core/lib/Drupal/Core/Entity/EntityFieldManager.php, line 478

Class

EntityFieldManager
Manages the discovery of entity fields.

Namespace

Drupal\Core\Entity

Code

public function getFieldMapByFieldType($field_type) {
  if (!isset($this->fieldMapByFieldType[$field_type])) {
    $filtered_map = [];
    $map = $this->getFieldMap();
    foreach ($map as $entity_type => $fields) {
      foreach ($fields as $field_name => $field_info) {
        if ($field_info['type'] == $field_type) {
          $filtered_map[$entity_type][$field_name] = $field_info;
        }
      }
    }
    $this->fieldMapByFieldType[$field_type] = $filtered_map;
  }
  return $this->fieldMapByFieldType[$field_type];
}

© 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!lib!Drupal!Core!Entity!EntityFieldManager.php/function/EntityFieldManager::getFieldMapByFieldType/8.1.x