Implements hook_entity_field_info_alter().
Set the "target_type" property definition for entity reference fields.
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.
\Drupal\Core\Entity\Field\Type\EntityReferenceItem::getPropertyDefinitions()
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'];
}
}
}
}