function entity_reference_entity_field_info_alter

Implements hook_entity_field_info_alter().

Set the "target_type" property definition for entity reference fields.

Parameters

array $info: The property info array as returned by hook_entity_field_info().

string $entity_type: The entity type for which entity properties are defined.

See also

\Drupal\Core\Entity\Field\Type\EntityReferenceItem::getPropertyDefinitions()

File

drupal/core/modules/entity_reference/entity_reference.module, line 49
Provides a field that can reference other entities.

Code

function entity_reference_entity_field_info_alter(&$info, $entity_type) {
  foreach (field_info_instances($entity_type) as $bundle_name => $instances) {
    foreach ($instances as $field_name => $instance) {
      $field = field_info_field($field_name);
      if ($field['type'] != 'entity_reference') {
        continue;
      }
      if (isset($info['definitions'][$field_name])) {
        $info['definitions'][$field_name]['settings']['target_type'] = $field['settings']['target_type'];
      }
      elseif (isset($info['optional'][$field_name])) {
        $info['optional'][$field_name]['settings']['target_type'] = $field['settings']['target_type'];
      }
    }
  }
}