public function EntityField::query in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views/src/Plugin/views/field/EntityField.php \Drupal\views\Plugin\views\field\EntityField::query()
Called to add the field to a query.
By default, all needed data is taken from entities loaded by the query plugin. Columns are added only if they are used in groupings.
Overrides FieldPluginBase::query
File
- core/
modules/ views/ src/ Plugin/ views/ field/ EntityField.php, line 237
Class
- EntityField
- A field that displays entity field data.
Namespace
Drupal\views\Plugin\views\fieldCode
public function query($use_groupby = FALSE) {
$fields = $this->additional_fields;
// No need to add the entity type.
$entity_type_key = array_search('entity_type', $fields);
if ($entity_type_key !== FALSE) {
unset($fields[$entity_type_key]);
}
if ($use_groupby) {
// Add the fields that we're actually grouping on.
$options = [];
if ($this->options['group_column'] != 'entity_id') {
$options = [
$this->options['group_column'] => $this->options['group_column'],
];
}
$options += is_array($this->options['group_columns']) ? $this->options['group_columns'] : [];
// Go through the list and determine the actual column name from field api.
$fields = [];
$table_mapping = $this
->getTableMapping();
$field_definition = $this
->getFieldStorageDefinition();
foreach ($options as $column) {
$fields[$column] = $table_mapping
->getFieldColumnName($field_definition, $column);
}
$this->group_fields = $fields;
}
// Add additional fields (and the table join itself) if needed.
if ($this
->add_field_table($use_groupby)) {
$this
->ensureMyTable();
$this
->addAdditionalFields($fields);
}
// Let the entity field renderer alter the query if needed.
$this
->getEntityFieldRenderer()
->query($this->query, $this->relationship);
}