/** * Extend the groupby form with group columns. */ public function buildGroupByForm(&$form, FormStateInterface $form_state) { parent::buildGroupByForm($form, $form_state); // With "field API" fields, the column target of the grouping function // and any additional grouping columns must be specified. $field_columns = array_keys($this->getFieldDefinition()->getColumns()); $group_columns = array('entity_id' => $this->t('Entity ID')) + array_map('ucfirst', array_combine($field_columns, $field_columns)); $form['group_column'] = array('#type' => 'select', '#title' => $this->t('Group column'), '#default_value' => $this->options['group_column'], '#description' => $this->t('Select the column of this field to apply the grouping function selected above.'), '#options' => $group_columns); $options = array('bundle' => 'Bundle', 'language' => 'Language', 'entity_type' => 'Entity_type'); // Add on defined fields, noting that they're prefixed with the field name. $form['group_columns'] = array('#type' => 'checkboxes', '#title' => $this->t('Group columns (additional)'), '#default_value' => $this->options['group_columns'], '#description' => $this->t('Select any additional columns of this field to include in the query and to group on.'), '#options' => $options + $group_columns); }