You are here

public function CustomEntityField::query in CiviCRM Entity 8.3

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 EntityField::query

File

src/Plugin/views/field/CustomEntityField.php, line 136

Class

CustomEntityField
A field that displays entity field data for custom fields.

Namespace

Drupal\civicrm_entity\Plugin\views\field

Code

public function query($use_groupby = FALSE) {
  $fields = $this->additional_fields;
  if ($use_groupby && $this->fieldMetadata && $this->fieldMetadata['column_name']) {
    $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'] : [];
    foreach ($options as $column) {
      $fields[$column] = $this->fieldMetadata['column_name'];
    }
    $this->group_fields = $fields;
  }
  if ($this
    ->add_field_table($use_groupby)) {
    $this
      ->ensureMyTable();
    $fields['id'] = 'id';
    $this
      ->addAdditionalFields($fields);
  }
  $this
    ->getEntityFieldRenderer()
    ->query($this->query, $this->relationship);
}