EntityViewsData::processViewsDataForEntityReference

protected EntityViewsData::processViewsDataForEntityReference($table, FieldDefinitionInterface $field_definition, array &$views_field, $field_column_name)

Processes the views data for an entity reference field.

Parameters

string $table: The table the language field is added to.

\Drupal\Core\Field\FieldDefinitionInterface $field_definition: The field definition.

array $views_field: The views field data.

string $field_column_name: The field column being processed.

File

core/modules/views/src/EntityViewsData.php, line 555

Class

EntityViewsData
Provides generic views integration for entities.

Namespace

Drupal\views

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
protected function processViewsDataForEntityReference($table, FieldDefinitionInterface $field_definition, array &$views_field, $field_column_name) {
 
  // @todo Should the actual field handler respect that this just renders a
  //   number?
  // @todo Create an optional entity field handler, that can render the
  //   entity.
 
  if ($entity_type_id = $field_definition->getItemDefinition()->getSetting('target_type')) {
    $entity_type = $this->entityManager->getDefinition($entity_type_id);
    if ($entity_type instanceof ContentEntityType) {
      $views_field['relationship'] = [
        'base' => $this->getViewsTableForEntityType($entity_type),
        'base field' => $entity_type->getKey('id'),
        'label' => $entity_type->getLabel(),
        'title' => $entity_type->getLabel(),
        'id' => 'standard',
      ];
      $views_field['field']['id'] = 'field';
      $views_field['argument']['id'] = 'numeric';
      $views_field['filter']['id'] = 'numeric';
      $views_field['sort']['id'] = 'standard';
    }
    else {
      $views_field['field']['id'] = 'field';
      $views_field['argument']['id'] = 'string';
      $views_field['filter']['id'] = 'string';
      $views_field['sort']['id'] = 'standard';
    }
  }
 
  if ($field_definition->getName() == $this->entityType->getKey('bundle')) {
    $views_field['filter']['id'] = 'bundle';
  }
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.