['data' => t('Username'), 'field' => 'u.name'], 'status' => ['data' => t('Status'), 'field' => 'u.status'], ]; $query = db_select('users_field_data', 'u'); $query->condition('u.uid', 0, '<>'); $query->condition('u.default_langcode', 1); $count_query = clone $query; $count_query->addExpression('COUNT(u.uid)'); $query = $query ->extend('Drupal\Core\Database\Query\PagerSelectExtender') ->extend('Drupal\Core\Database\Query\TableSortExtender'); $query ->fields('u', ['uid']) ->limit(50) ->orderByHeader($header) ->setCountQuery($count_query); $uids = $query ->execute() ->fetchCol(); $options = []; foreach (User::loadMultiple($uids) as $account) { $options[$account->id()] = [ 'title' => ['data' => ['#title' => $account->getUsername()]], 'username' => $account->getUsername(), 'status' => $account->isActive() ? t('active') : t('blocked'), ]; } $form['accounts'] = [ '#type' => 'tableselect', '#header' => $header, '#options' => $options, '#empty' => t('No people available.'), ]; return $form; } /** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { } }