function EntityField::buildGroupByForm

Same name and namespace in other branches
  1. 9 core/modules/views/src/Plugin/views/field/EntityField.php \Drupal\views\Plugin\views\field\EntityField::buildGroupByForm()
  2. 8.9.x core/modules/views/src/Plugin/views/field/EntityField.php \Drupal\views\Plugin\views\field\EntityField::buildGroupByForm()
  3. 11.x core/modules/views/src/Plugin/views/field/EntityField.php \Drupal\views\Plugin\views\field\EntityField::buildGroupByForm()

Extend the groupby form with group columns.

Parameters

array $form: An alterable, associative array containing the structure of the form, passed by reference.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Overrides HandlerBase::buildGroupByForm

File

core/modules/views/src/Plugin/views/field/EntityField.php, line 688

Class

EntityField
A field that displays entity field data.

Namespace

Drupal\views\Plugin\views\field

Code

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 = [
    'entity_id' => $this->t('Entity ID'),
  ] + array_map('ucfirst', array_combine($field_columns, $field_columns));
  $form['group_column'] = [
    '#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 = [
    'bundle' => 'Bundle',
    'language' => 'Language',
    'entity_type' => 'Entity_type',
  ];
  // Add on defined fields, noting that they're prefixed with the field name.
  $form['group_columns'] = [
    '#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,
  ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.