Skip to content

Choice field kits

Kits for picking values, from src/Kits/Field/Checkboxes/, Radios/, Select/, Table/ and Common/. CheckboxesKit, RadiosKit and SelectKit use OptionsTrait: setOptions(['key' => 'Label']) or appendOption(['key' => 'Label']) store OptionKit objects, which are turned into #options when the array is built.

CheckboxKit

A single checkbox.

Class Drupal\formfactorykits\Kits\Field\Checkboxes\CheckboxKit (src/Kits/Field/Checkboxes/CheckboxKit.php)
Extends FieldKit
Factory method $kits->checkbox()
Form API #type checkbox
Default ID checkbox
Traits DefaultValueTrait, DescriptionTrait, PrefixTrait, RequiredTrait, SuffixTrait, TitleTrait, ValueTrait

Setters

Method From
setDefaultValue(array\|string\|null $value) DefaultValueTrait (trait)
setDescription(string $description) DescriptionTrait (trait)
setPrefix(array\|string\|null $value) PrefixTrait (trait)
setRequired(bool $required = TRUE) RequiredTrait (trait)
setSuffix(array\|string\|null $value) SuffixTrait (trait)
setTitle(string $title) TitleTrait (trait)
setValue(array\|string\|null $value) ValueTrait (trait)

Example

$kit = $kits->checkbox('agree')->setTitle('I agree')->setRequired();

Generated render array ([$kit->getID() => $kit->getArray()])

[
  'agree' => [
    '#type' => 'checkbox',
    '#title' => 'I agree',
    '#required' => TRUE,
  ],
]

CheckboxesKit

A set of checkboxes.

Class Drupal\formfactorykits\Kits\Field\Checkboxes\CheckboxesKit (src/Kits/Field/Checkboxes/CheckboxesKit.php)
Extends FieldKit
Factory method $kits->checkboxes()
Form API #type checkboxes
Default ID checkboxes
Traits DefaultValueTrait, DescriptionTrait, OptionsTrait, PrefixTrait, RequiredTrait, StringTranslationTrait, SuffixTrait, TitleTrait, ValueTrait

Setters

Method From
appendOption(Drupal\formfactorykits\Kits\Field\Common\OptionKit\|array $mixed) OptionsTrait (trait)
setDefaultValue(array\|string\|null $value) DefaultValueTrait (trait)
setDescription(string $description) DescriptionTrait (trait)
setOptions(array $options) OptionsTrait (trait)
setPrefix(array\|string\|null $value) PrefixTrait (trait)
setRequired(bool $required = TRUE) RequiredTrait (trait)
setStringTranslation(Drupal\Core\StringTranslation\TranslationInterface $translation) StringTranslationTrait (trait)
setSuffix(array\|string\|null $value) SuffixTrait (trait)
setTitle(string $title) TitleTrait (trait)
setValue(array\|string\|null $value) ValueTrait (trait)

Example

$kit = $kits->checkboxes('pets')->setTitle('Pets')->appendOption(['dog' => 'Dog'])->appendOption(['cat' => 'Cat'])->setDefaultValue(['cat']);

Generated render array ([$kit->getID() => $kit->getArray()])

[
  'pets' => [
    '#type' => 'checkboxes',
    '#title' => 'Pets',
    '#default_value' => ['cat'],
    '#options' => [
      'dog' => 'Dog',
      'cat' => 'Cat',
    ],
  ],
]

RadiosKit

A set of radios.

Class Drupal\formfactorykits\Kits\Field\Radios\RadiosKit (src/Kits/Field/Radios/RadiosKit.php)
Extends FieldKit
Factory method $kits->radios()
Form API #type radios
Default ID radios
Traits DefaultValueTrait, DescriptionTrait, OptionsTrait, PrefixTrait, RequiredTrait, StringTranslationTrait, SuffixTrait, TitleTrait, ValueTrait

Setters

Method From
appendOption(Drupal\formfactorykits\Kits\Field\Common\OptionKit\|array $mixed) OptionsTrait (trait)
setDefaultValue(array\|string\|null $value) DefaultValueTrait (trait)
setDescription(string $description) DescriptionTrait (trait)
setOptions(array $options) OptionsTrait (trait)
setPrefix(array\|string\|null $value) PrefixTrait (trait)
setRequired(bool $required = TRUE) RequiredTrait (trait)
setStringTranslation(Drupal\Core\StringTranslation\TranslationInterface $translation) StringTranslationTrait (trait)
setSuffix(array\|string\|null $value) SuffixTrait (trait)
setTitle(string $title) TitleTrait (trait)
setValue(array\|string\|null $value) ValueTrait (trait)

Example

$kit = $kits->radios('size')->setTitle('Size')->setOptions(['s' => 'Small', 'l' => 'Large']);

Generated render array ([$kit->getID() => $kit->getArray()])

[
  'size' => [
    '#type' => 'radios',
    '#title' => 'Size',
    '#options' => [
      's' => 'Small',
      'l' => 'Large',
    ],
  ],
]

SelectKit

A select list. The constructor sets #empty_option to an empty string unless you pass one in $parameters.

Class Drupal\formfactorykits\Kits\Field\Select\SelectKit (src/Kits/Field/Select/SelectKit.php)
Extends FieldKit
Factory method $kits->select()
Form API #type select
Default ID select
Traits DefaultValueTrait, DescriptionTrait, OptionsTrait, PrefixTrait, StringTranslationTrait, SuffixTrait, TitleTrait, ValueTrait

Setters

Method From
appendOption(Drupal\formfactorykits\Kits\Field\Common\OptionKit\|array $mixed) OptionsTrait (trait)
setDefaultValue(array\|string\|null $value) DefaultValueTrait (trait)
setDescription(string $description) DescriptionTrait (trait)
setMultiple(bool $isMultiple = TRUE) SelectKit
setOptions(array $options) OptionsTrait (trait)
setPrefix(array\|string\|null $value) PrefixTrait (trait)
setStringTranslation(Drupal\Core\StringTranslation\TranslationInterface $translation) StringTranslationTrait (trait)
setSuffix(array\|string\|null $value) SuffixTrait (trait)
setTitle(string $title) TitleTrait (trait)
setValue(array\|string\|null $value) ValueTrait (trait)

Example

$kit = $kits->select('color')->setTitle('Color')->setOptions(['red' => 'Red', 'blue' => 'Blue'])->setMultiple();

Generated render array ([$kit->getID() => $kit->getArray()])

[
  'color' => [
    '#empty_option' => '',
    '#type' => 'select',
    '#title' => 'Color',
    '#multiple' => TRUE,
    '#options' => [
      'red' => 'Red',
      'blue' => 'Blue',
    ],
  ],
]

TableSelectKit

A tableselect: a table whose rows can be selected. Options are rows keyed by option ID and header column key. The constructor sets #options to [] and #empty to t('No options available.'). Its appendOption() and setOptions() are its own, not OptionsTrait.

Class Drupal\formfactorykits\Kits\Field\Table\TableSelectKit (src/Kits/Field/Table/TableSelectKit.php)
Extends FieldKit
Factory method $kits->tableSelect()
Form API #type tableselect
Default ID tableselect
Traits DefaultValueTrait, DescriptionTrait, PrefixTrait, StickyTrait, SuffixTrait, TitleTrait, ValueTrait

Setters

Method From
appendHeaderColumn(string $column, string $title) TableSelectKit
appendOption(string $option, array $row) TableSelectKit
setDefaultValue(array\|string\|null $value) DefaultValueTrait (trait)
setDescription(string $description) DescriptionTrait (trait)
setEmptyMessage(Drupal\Core\StringTranslation\TranslatableMarkup $message) TableSelectKit
setHeader(array $columns) TableSelectKit
setMultiple(bool $state = TRUE) TableSelectKit
setOptions(array $options = []) TableSelectKit
setPrefix(array\|string\|null $value) PrefixTrait (trait)
setSingle() TableSelectKit
setSticky() StickyTrait (trait)
setSuffix(array\|string\|null $value) SuffixTrait (trait)
setTitle(string $title) TitleTrait (trait)
setValue(array\|string\|null $value) ValueTrait (trait)

Example

$kit = $kits->tableSelect('users')->appendHeaderColumn('name', 'Name')->appendOption('1', ['name' => 'Ada'])->setSingle();

Generated render array ([$kit->getID() => $kit->getArray()])

[
  'users' => [
    '#options' => [
      1 => [
        'name' => 'Ada',
      ],
    ],
    '#type' => 'tableselect',
    '#empty' => t('No options available.'),
    '#header' => [
      'name' => 'Name',
    ],
    '#multiple' => FALSE,
  ],
]

OptionKit

One option of an OptionsTrait kit. Its ID becomes the option key and its title the label. It has no Form API type and is never rendered on its own.

Class Drupal\formfactorykits\Kits\Field\Common\OptionKit (src/Kits/Field/Common/OptionKit.php)
Extends FieldKit
Factory method none; created by setOptions() / appendOption()
Form API #type none
Default ID none (pass one)
Traits DefaultValueTrait, PrefixTrait, SuffixTrait, TitleTrait, ValueTrait

Setters

Method From
setDefaultValue(array\|string\|null $value) DefaultValueTrait (trait)
setPrefix(array\|string\|null $value) PrefixTrait (trait)
setSuffix(array\|string\|null $value) SuffixTrait (trait)
setTitle(string $title) TitleTrait (trait)
setValue(array\|string\|null $value) ValueTrait (trait)