You are here

public function EntityFieldManager::getFieldMapByFieldType in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Entity/EntityFieldManager.php \Drupal\Core\Entity\EntityFieldManager::getFieldMapByFieldType()

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: The bundles in which the field appears.

Overrides EntityFieldManagerInterface::getFieldMapByFieldType

File

core/lib/Drupal/Core/Entity/EntityFieldManager.php, line 483
Contains \Drupal\Core\Entity\EntityFieldManager.

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];
}