public function DatabaseTestForm::buildForm in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/tests/modules/database_test/src/Form/DatabaseTestForm.php \Drupal\database_test\Form\DatabaseTestForm::buildForm()
Form constructor.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The form structure.
Overrides FormInterface::buildForm
File
- core/
modules/ system/ tests/ modules/ database_test/ src/ Form/ DatabaseTestForm.php, line 29 - Contains \Drupal\database_test\Form\DatabaseTestForm.
Class
- DatabaseTestForm
- Form controller for database_test module.
Namespace
Drupal\database_test\FormCode
public function buildForm(array $form, FormStateInterface $form_state) {
$header = array(
'username' => array(
'data' => t('Username'),
'field' => 'u.name',
),
'status' => array(
'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', array(
'uid',
))
->limit(50)
->orderByHeader($header)
->setCountQuery($count_query);
$uids = $query
->execute()
->fetchCol();
$options = array();
foreach (User::loadMultiple($uids) as $account) {
$options[$account
->id()] = array(
'title' => array(
'data' => array(
'#title' => $account
->getUsername(),
),
),
'username' => $account
->getUsername(),
'status' => $account
->isActive() ? t('active') : t('blocked'),
);
}
$form['accounts'] = array(
'#type' => 'tableselect',
'#header' => $header,
'#options' => $options,
'#empty' => t('No people available.'),
);
return $form;
}